gpt4 book ai didi

swift - md5 哈希返回并封装在 swift 中

转载 作者:行者123 更新时间:2023-11-30 14:02:39 24 4
gpt4 key购买 nike

我用过这个md5我得到了哈希结果。然而返回是这样的:<8f833933 03a151ea 33bf6e3e bbc28594> 。我对 swift 很陌生,所以我不完全确定它是否是一个封装。如何去掉小于号和大于号?

最佳答案

从签名中可以看出,该函数返回一个 NSData 对象:

func md5(#string: String) -> NSData

如果要将其转换为字符串,则需要以人类可读的格式对其进行编码。最常见的是十六进制表示形式。

如果您使用该问题中较新的 Swift 2 函数,它会返回 UInt8 数组

func md5(string string: String) -> [UInt8] {
var digest = [UInt8](count: Int(CC_MD5_DIGEST_LENGTH), repeatedValue: 0)
if let data = string.dataUsingEncoding(NSUTF8StringEncoding) {
CC_MD5(data.bytes, CC_LONG(data.length), &digest)
}

return digest
}

您可以使用这个方便的toHex函数:

func toHex(bytes: [UInt8]) -> String {
var numbers = [String]()
for byte in bytes {
if byte < 0x10 {
numbers.append("0")
}
numbers.append(String(byte, radix: 16, uppercase: true))
}
return numbers.joinWithSeparator("")
}

然后返回一个字符串:

toHex(md5("Hello"))

(在我看来,你应该总是更喜欢纯 Swift 类型(UInt8 数组)而不是基础类型(NSData)。)

关于swift - md5 哈希返回并封装在 swift 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com