我已经看过至少 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
以便将相同的值传递给任一方法应该产生相同的值?
感谢您的帮助