[swift] Swift CryptoSwift의 사용 방법

Swift CryptoSwift는 Swift에서 사용할 수 있는 암호화 라이브러리입니다. 이 라이브러리를 사용하여 암호화 및 해시 기능을 쉽게 구현할 수 있습니다.

설치

CryptoSwift를 사용하려면 먼저 프로젝트에 패키지를 추가해야 합니다. Xcode에서는 다음 단계를 따릅니다.

  1. 프로젝트를 엽니다.
  2. File -> Swift Packages -> Add Package Dependency… 를 선택합니다.
  3. 패키지 관리자 창에서 “https://github.com/krzyzanowskim/CryptoSwift”을 입력하고 Next를 클릭합니다.
  4. 적절한 버전을 선택한 후 Add를 클릭하여 패키지를 추가합니다.

사용 방법

CryptoSwift를 사용하여 문자열을 암호화하는 예제를 보겠습니다.

import CryptoSwift

func encryptString(input: String, key: String) -> String? {
    do {
        let inputData = Data(input.utf8)
        let keyData = Data(key.utf8)
        
        let encrypted = try AES(key: keyData, blockMode: .ECB).encrypt(inputData)
        let encryptedString = encrypted.base64EncodedString()
        
        return encryptedString
    } catch {
        print("Encryption failed: \(error.localizedDescription)")
        return nil
    }
}

// 문자열 암호화 호출
let inputString = "Hello, World!"
let encryptionKey = "mySecretKey"
let encryptedString = encryptString(input: inputString, key: encryptionKey)

// 암호화된 문자열 출력
if let encryptedString = encryptedString {
    print("Encrypted string: \(encryptedString)")
}

위 예제에서 encryptString 함수는 입력된 문자열을 AES 알고리즘을 사용하여 주어진 키로 암호화합니다. 암호화된 결과는 Base64 인코딩하여 문자열로 반환됩니다.

CryptoSwift를 사용하여 해시 함수를 사용하는 예제를 보겠습니다.

import CryptoSwift

func hashString(input: String) -> String {
    let inputData = Data(input.utf8)
    let hashed = SHA256.hash(data: inputData)
    let hashedString = hashed.compactMap { String(format: "%02x", $0) }.joined()
    
    return hashedString
}

// 문자열 해시 호출
let inputString = "Hello, World!"
let hashedString = hashString(input: inputString)

// 해시된 문자열 출력
print("Hashed string: \(hashedString)")

위 예제에서 hashString 함수는 입력된 문자열을 SHA256 해시 함수를 사용하여 해시값을 반환합니다. 반환된 해시값은 16진수 문자열로 표현됩니다.

결론

Swift CryptoSwift는 Swift에서 암호화 및 해시 기능을 쉽게 구현할 수 있는 편리한 라이브러리입니다. 이 문서에서는 몇 가지 간단한 예제를 소개했지만, 더 많은 기능과 사용 방법을 익히고 싶다면 CryptoSwift의 공식 문서를 참조하시기 바랍니다.

참고 자료