7

私はソーシャル メディア アプリケーションを構築しています。Swift でパスワード文字列を SHA512 にエンコードする方法を教えてください。GitHub で CryptoSwift ライブラリを見つけましたが、それを Swift プロジェクトにロードしてプロジェクト ファイルにリンクするのに苦労しています。これを比較的簡単に達成する方法を知っている人はいますか?前もってありがとう、カイル

4

5 に答える 5

8

Swift 3のソリューション:

extension String {

    func sha512() -> String {
        let data = self.data(using: .utf8)!
        var digest = [UInt8](repeating: 0, count: Int(CC_SHA512_DIGEST_LENGTH))
        data.withUnsafeBytes({
            _ = CC_SHA512($0, CC_LONG(data.count), &digest)
        })
        return digest.map({ String(format: "%02hhx", $0) }).joined(separator: "")
    }

}
于 2017-03-03T12:37:31.330 に答える
2

スイフト3

func sha512() -> String {
    let data = self.data(using: .utf8)!
    var digest = [UInt8](repeating: 0, count: Int(CC_SHA512_DIGEST_LENGTH))
    data.withUnsafeBytes({
        _ = CC_SHA512($0, CC_LONG(data.count), &digest)
    })

    return digest.map({ String(format: "%02hhx", $0) }).joined(separator: "")
}

スイフト 2.3

func sha512() -> String {
    let data = self.dataUsingEncoding(NSUTF8StringEncoding)!
    var digest = [UInt8](count:Int(CC_SHA512_DIGEST_LENGTH), repeatedValue: 0)
    CC_SHA512(data.bytes, CC_LONG(data.length), &digest)
    let hexBytes = digest.map { String(format: "%02hhx", $0) }

    return hexBytes.joinWithSeparator("")
}
于 2016-05-18T13:41:23.663 に答える