[swift] Swift 암호화
암호화는 개인정보나 중요한 데이터를 보호하기 위해 필수적인 기술입니다. Swift에서는 다양한 방법으로 데이터를 암호화할 수 있습니다. 이번 포스트에서는 Swift에서 가장 일반적인 암호화 기술인 AES(Advanced Encryption Standard)를 사용하여 데이터를 암호화하는 방법을 알아보겠습니다.
AES 암호화
AES는 대칭키 암호화 방식으로, 암호화와 복호화에 동일한 키를 사용합니다. Swift에서는 CryptoKit
라이브러리를 사용하여 AES 암호화를 구현할 수 있습니다.
import CryptoKit
// 암호화할 데이터
let plainText = "Hello, World!"
// AES 키 생성
let key = SymmetricKey(size: .bits256)
// AES 암호화
let sealedBox = try AES.GCM.seal(plainText.data(using: .utf8)!, using: key)
// 암호화된 데이터 가져오기
let encryptedData = sealedBox.ciphertext
// 복호화
let decryptedBox = try AES.GCM.open(sealedBox, using: key)
let decryptedData = Data(decryptedBox[...])
let decryptedText = String(data: decryptedData, encoding: .utf8)
위의 코드에서, 우선 암호화할 데이터인 plainText
를 정의합니다. 그런 다음, AES 암호화에 사용할 키를 생성합니다. AES 키는 SymmetricKey
객체로 생성되며, 여기서는 256비트 크기의 키를 사용합니다. AES.GCM.seal
메서드를 호출하여 데이터를 암호화하고, sealedBox
에 암호화된 데이터와 관련된 추가 정보가 저장됩니다. 이후에는 sealedBox
에서 암호화된 데이터를 추출할 수 있습니다.
복호화를 위해서는 AES.GCM.open
메서드를 호출하여 sealedBox
를 열어야 합니다. 이때도 동일한 키를 사용해야 합니다. decryptedBox
에는 복호화된 데이터와 관련된 정보가 저장되며, 이를 통해 원래의 데이터를 복구할 수 있습니다.