2017-10-16 111 views
1

我已經做了一些四處尋找,但我只能找到使用Objective-C創建SHA256哈希值的例子。有沒有辦法只用Swift4來做到這一點?使用swift4創建SHA256哈希值

+3

[SHA256在可能的複製swift](https://stackoverflow.com/questions/25388747/sha256-in-swift) –

回答

1

你可以使用這樣的:

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> 
+0

當我添加功能到我的代碼,它給了我多ple錯誤 –

+0

多重錯誤意味着它給予了什麼? –

+0

這是Xcode的截圖:https://imgur.com/a/7QPwg –