[swift] Swift CryptoSwift로 AES-GCM 암호화하기
이번 블로그 포스트에서는 Swift CryptoSwift 라이브러리를 사용하여 AES-GCM 암호화를 수행하는 방법에 대해 알아보겠습니다.
CryptoSwift 설치
먼저 CryptoSwift를 설치해야 합니다. 이를 위해 Podfile
파일에 다음의 dependency를 추가하여 CocoaPods를 통해 설치합니다.
pod 'CryptoSwift', '~> 1.4.0'
그리고 콘솔에서 아래의 명령어를 실행하여 CocoaPods를 업데이트하고 라이브러리를 설치합니다.
$ pod install
AES-GCM 암호화 구현하기
CryptoSwift를 사용하여 AES-GCM 암호화를 구현하려면 다음의 단계를 따라야 합니다.
- CryptoSwift import하기:
import CryptoSwift
- 암호화할 데이터와 256비트 길이의 키 및 초기화 벡터(IV) 생성하기:
let key = AES.GCM.randomIV() let iv = AES.GCM.randomIV() let dataToEncrypt: Data = "Hello, CryptoSwift!".data(using: .utf8)!
- 암호화하기:
let aes = try AES.GCM(key: key, iv: iv) let encryptedData = try aes.encrypt(dataToEncrypt)
- 복호화하기:
let aesDecrypt = try AES.GCM(key: key, iv: iv) let decryptedData = try aesDecrypt.decrypt(encryptedData)
결과 확인하기:
let decryptedString = String(data: decryptedData, encoding: .utf8)
print("Decrypted Data: \(decryptedString ?? "")")
전체 코드 예시
import CryptoSwift
let key = AES.GCM.randomIV()
let iv = AES.GCM.randomIV()
let dataToEncrypt: Data = "Hello, CryptoSwift!".data(using: .utf8)!
let aes = try AES.GCM(key: key, iv: iv)
let encryptedData = try aes.encrypt(dataToEncrypt)
let aesDecrypt = try AES.GCM(key: key, iv: iv)
let decryptedData = try aesDecrypt.decrypt(encryptedData)
let decryptedString = String(data: decryptedData, encoding: .utf8)
print("Decrypted Data: \(decryptedString ?? "")")
이제 Swift CryptoSwift를 사용하여 AES-GCM 암호화를 수행하는 방법에 대해 배웠습니다. CryptoSwift의 다른 기능들을 알아보고 더 복잡한 암호화 작업을 수행할 수도 있습니다.