[swift] Swift CryptoSwift로 비밀키를 이용한 메세지 복호화하기

이번에는 Swift에서 암호화된 메세지를 복호화하기 위해 CryptoSwift라는 라이브러리를 사용하는 방법에 대해 알아보겠습니다. CryptoSwift는 Swift에서 암호화 관련 작업을 쉽게 처리할 수 있도록 도와주는 유용한 라이브러리입니다.

CryptoSwift 설치하기

먼저 CryptoSwift 라이브러리를 설치해야 합니다. Cocoapods를 사용한다면 Podfile에 다음과 같이 추가합니다.

pod 'CryptoSwift'

그리고 터미널에서 다음 명령어를 실행하여 Cocoapods를 업데이트하고 라이브러리를 설치합니다.

pod install

Cocoapods를 사용하지 않을 경우 CryptoSwift GitHub 페이지에서 수동으로 라이브러리를 다운로드하고 프로젝트에 추가하셔도 됩니다.

비밀키로 메세지 복호화하기

CryptoSwift를 사용하여 비밀키를 이용해 암호화된 메세지를 복호화하는 방법은 다음과 같습니다.

import CryptoSwift

func decryptMessage(encryptedMessage: String, secretKey: String) -> String? {
    guard let encryptedData = Data(base64Encoded: encryptedMessage) else {
        return nil
    }

    do {
        let decryptedData = try AES(key: Array(secretKey.utf8), blockMode: ECB(), padding: .pkcs7).decrypt(encryptedData)
        let decryptedMessage = String(data: decryptedData, encoding: .utf8)
        return decryptedMessage
    } catch {
        print("Decryption failed: \(error)")
        return nil
    }
}

// 사용 예시
let encryptedMessage = "bGiBfkU2qDQDfo5QYDCF/w=="
let secretKey = "MySecretKey"

if let decryptedMessage = decryptMessage(encryptedMessage: encryptedMessage, secretKey: secretKey) {
    print(decryptedMessage) // 복호화된 메세지 출력
} else {
    print("Decryption failed.") // 복호화 실패시 에러 메세지 출력
}

위의 코드에서 decryptMessage 함수는 암호화된 메세지와 비밀키를 받아와서 복호화된 메세지를 반환합니다.

우선 암호화된 메세지를 Base64 디코딩하여 encryptedData로 변환합니다. 그리고 AES 객체를 생성하고, 비밀키를 배열로 변환한 뒤 decrypt 함수를 호출하여 메세지를 복호화합니다. 복호화된 데이터를 String으로 변환한 후 반환합니다.

다음으로, encryptedMessagesecretKey 변수를 원하는 암호화된 메세지와 비밀키로 설정하고, decryptMessage 함수를 호출하여 복호화된 메세지를 출력합니다.

결론

Swift에서 비밀키를 이용한 메세지 복호화하기는 CryptoSwift 라이브러리를 사용하면 간단하게 처리할 수 있습니다. CryptoSwift의 다양한 암호화 기능을 활용하여 보안에 강력한 Swift 애플리케이션을 개발할 수 있습니다.

더 자세한 정보와 사용 예제는 CryptoSwift GitHub 페이지를 참조해주세요.