【发布时间】:2014-10-14 23:57:26
【问题描述】:
这是我的功能。首先println 将正确的哈希打印到控制台,但在下一行程序崩溃。你能帮助我吗?
func sha256(string: NSString) -> NSString {
var data : NSData! = string.dataUsingEncoding(NSUTF8StringEncoding)
var hash = [UInt8](count: Int(CC_SHA256_DIGEST_LENGTH), repeatedValue: 0)
CC_SHA256(data.bytes, CC_LONG(data.length), &hash)
let res = NSData(bytes: hash, length: Int(CC_SHA256_DIGEST_LENGTH))
println(res)
let resstr = NSString(data: res, encoding: NSUTF8StringEncoding)
println(resstr)
return resstr
}
【问题讨论】:
-
并非所有数据都可以用字符串表示。哈希 (SHA-256) 可表示的可能性基本上为零。这是因为 SHA-256(一般是散列)的结果是二进制数据。即使在不太可能发生的情况下,它也不是“合理”的文本。