1.用第三方库CryptoSwift(推荐),本人还没有实测
CryptoSwift - github
2.下面的代码本人亲测有效
import Foundation
import CommonCrypto
import CryptoKit
func hexString(_ iterator:Array<UInt8>.Iterator) -> String{
return iterator.map{
String(format: "%02x", $0)
}.joined().uppercased()
}
extension Data {
var sha256: String {
if #available(iOS 13.0, *) {
return hexString(SHA256.hash(data: self).makeIterator())
} else {
var disest = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
self.withUnsafeBytes {
bytes in
_ = CC_SHA256(bytes.baseAddress,CC_LONG(self.count),&disest)
}
return hexString(disest.makeIterator())
}
}
}
参考博客:
swiftUI之如何进行sha256加密