md5哈希返回,并封装在swift中
我使用了这个,得到了散列结果。但是,返回值如下所示:。我是swift的新手,所以我不能完全确定这是否是一个封装。如何去掉小于号和大于号?从签名中可以看出,函数返回一个NSData对象:md5哈希返回,并封装在swift中,swift,md5,Swift,Md5,我使用了这个,得到了散列结果。但是,返回值如下所示:。我是swift的新手,所以我不能完全确定这是否是一个封装。如何去掉小于号和大于号?从签名中可以看出,函数返回一个NSData对象: func md5(#string: String) -> NSData 如果要将其转换为字符串,则需要以人类可读的格式对其进行编码。最常见的是十六进制表示法 如果您使用该问题中较新的Swift 2函数,它将返回UInt8数组 func md5(string string: String) -> [U
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("")
}
在我看来,你应该总是喜欢纯SWIFT类型的Unt8数组,而不是基础类型NStase.< /P>,这意味着NSDATA对象是用它的描述方法来打印的。如果你搜索NSEDATA到十六进制字符串,那么你应该找到一些解决方案,例如:@ USSR131364。如果这个答案已经解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。
toHex(md5("Hello"))