Joe*_*tto 6 generics hash sha sha256 swift
我试图从中获取哈希值,SHA256.hash(data:)但为了做到这一点,我需要获取描述,然后使用.replacingOccurrences(of: "SHA256 digest: ", with: ""). 有没有办法可以将完整的 SHA256 哈希值作为字符串获取?
func getId<T>(input: T) -> String {
let input = "\(input)".utf8
let data = Data(input)
let hash = SHA256.hash(data: data).description.replacingOccurrences(of: "SHA256 digest: ", with: "")
return hash
}
Run Code Online (Sandbox Code Playgroud)
您可以简单地将SHA256Digest字节映射到十六进制字符串:
import CryptoKit
extension UnsignedInteger where Self: CVarArg {
var hexa: String { .init(format: "%ll*0x", bitWidth / 4, self) }
}
Run Code Online (Sandbox Code Playgroud)
extension DataProtocol {
var sha256Digest: SHA256Digest { SHA256.hash(data: self) }
var sha256Data: Data { .init(sha256Digest) }
var sha256Hexa: String { sha256Digest.map(\.hexa).joined() }
}
Run Code Online (Sandbox Code Playgroud)
func getId<D: DataProtocol>(data: D) -> String {
data.sha256Hexa
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2021 次 |
| 最近记录: |