[swift] Swift CryptoSwift로 SHA 해시 생성하기

Swift에서 문자열의 SHA 해시를 생성하는 방법을 알고 싶으신가요? CryptoSwift 라이브러리를 사용하면 간단하게 SHA-1, SHA-256, SHA-384, SHA-512와 같은 해시를 생성할 수 있습니다.

CryptoSwift 라이브러리 설치하기

CryptoSwift는 Swift에서 암호화 관련 작업을 수행할 수 있는 라이브러리입니다. Cocoapods나 Swift Package Manager를 통해 간편하게 설치할 수 있습니다.

Cocoapods를 사용하는 경우, Podfile에 다음을 추가하고 pod install 명령을 실행합니다.

pod 'CryptoSwift', '~> 1.4'

Swift Package Manager를 사용하는 경우, Package.swift 파일에 다음을 추가합니다.

dependencies: [
    .package(url: "https://github.com/krzyzanowskim/CryptoSwift.git", .upToNextMinor(from: "1.4.0"))
]

문자열의 SHA 해시 생성하기

문자열의 SHA 해시를 생성하려면, CryptoSwift의 CryptoSwift.Digest를 사용해야 합니다. 다음은 문자열의 SHA-256 해시를 생성하는 예제 코드입니다.

import CryptoSwift

func generateSHA256Hash(string: String) -> String? {
    guard let data = string.data(using: .utf8) else {
        return nil
    }
    
    let sha = CryptoSwift.SHA256()
    let digest = sha.process(data: data)
    let hexString = digest.toHexString()
    
    return hexString
}

let inputString = "Hello, World!"
if let sha256Hash = generateSHA256Hash(string: inputString) {
    print("SHA-256 해시: \(sha256Hash)")
} else {
    print("해시 생성에 실패하였습니다.")
}

위 코드에서 generateSHA256Hash 함수는 입력된 문자열을 UTF-8로 인코딩한 후, CryptoSwift 라이브러리의 SHA256를 사용하여 해시값을 계산합니다. 계산된 해시값은 16진수로 표현된 문자열로 반환됩니다.

지원되는 해시 알고리즘

CryptoSwift는 다양한 해시 알고리즘을 지원합니다. 일부 포함된 알고리즘은 다음과 같습니다.

SHA-1, SHA-256, SHA-384, SHA-512 외에도 다른 해시 알고리즘을 사용하고 싶다면, SHA256를 원하는 알고리즘으로 변경하면 됩니다.

결론

이번 티스토리 포스트에서는 Swift CryptoSwift를 사용하여 문자열의 SHA 해시를 생성하는 방법에 대해 알아보았습니다. CryptoSwift 라이브러리는 Swift에서 간단하게 암호화 작업을 수행할 수 있는 강력한 도구입니다. 이를 활용하여 암호화 관련 작업을 보다 쉽게 처리할 수 있습니다.

더 자세한 내용 및 사용법은 CryptoSwift GitHub 레포지토리를 참고하시기 바랍니다.