我在Stack Overflow上看了至少6页关于iOS和SHA256的内容,但仍然无法理解其中的问题。
通常情况下,我使用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
相同,这样将同一值传递给任一方法都应该产生相同的值?
感谢您的帮助