【发布时间】:2012-09-16 10:05:21
【问题描述】:
我已经查看了至少 6 页关于 iOS 和 SHA256 的 SO,但我仍然无法弄清楚发生了什么。
一般来说,我习惯于在 PHP 中使用 hash() 函数执行 SHA256,它会返回一个字符串值,例如:db1204372d8d9f14acc608b497227047d63ad868987883d0a29198be8e6ce853
我正在尝试在我的 iOS 应用程序中实现 SHA256,以加强应用程序和服务器之间的安全性,但是编码部分让我头疼...
我正在使用 NSData 类别:
+ (NSData *)sha256:(NSData *)data {
NSMutableData *out = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];
CC_SHA256(data.bytes, data.length, out.mutableBytes);
if ( CC_SHA256(data.bytes, data.length, out.mutableBytes) ) return out;
return nil;
}
但是,无论我如何尝试将生成的 NSData 对象编码为 NSString(以发送到服务器),我最终都会得到这样的字符串 ã°ÄBüûôÈo¹$'®AädL¤xR¸U
我的问题 - 如何实现与 hash 行为相同的类别,以便将相同的值传递给任一方法应该产生相同的值?
感谢您的帮助
【问题讨论】:
标签: ios iphone encryption hash sha256