[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에는 복호화된 데이터와 관련된 정보가 저장되며, 이를 통해 원래의 데이터를 복구할 수 있습니다.

참고 자료