使用swift4创建SHA256哈希

时间:2017-10-16 23:34:05

标签: sha256 xcode9 swift4

我已经做了一些环顾四周,但我只能找到使用Objective-C创建SHA256哈希的示例。有没有办法只用Swift4做到这一点?

1 个答案:

答案 0 :(得分:6)

您可以这样使用:

func ccSha256(data: Data) -> Data {
    var digest = Data(count: Int(CC_SHA256_DIGEST_LENGTH))

    _ = digest.withUnsafeMutableBytes { (digestBytes) in
        data.withUnsafeBytes { (stringBytes) in
            CC_SHA256(stringBytes, CC_LONG(data.count), digestBytes)
        }
    }
    return digest
}

您可以这样打电话:

let str = "givesomestringtoencode"
let data = ccSha256(data: str.data(using: .utf8)!)
print("sha256 String: \(data.map { String(format: "%02hhx", $0) }.joined())")

在桥接头文件中添加以下内容:

#import <CommonCrypto/CommonHMAC.h>