【发布时间】:2010-09-13 23:29:13
【问题描述】:
当我使用此代码在我的 iPhone 应用程序中生成 hash256 时:
unsigned char hashedChars[32];
NSString *inputString;
inputString = [NSString stringWithFormat:@"hello"];
CC_SHA256([inputString UTF8String],
[inputString lengthOfBytesUsingEncoding:NSASCIIStringEncoding ],
hashedChars);
NSData * hashedData = [NSData dataWithBytes:hashedChars length:32];
inputString 的 hash256 是正确创建的,但是如果我使用这样的字符串 @"\x00\x25\x53\b4",则 hash256 与带有 "\x" 字符的真实字符串不同。 我认为问题在于编码“UTF8”而不是ascii。 谢谢!
【问题讨论】:
-
你不是在@"\x00\x25\x53\b4" 中缺少一个 x 吗?不应该是@"\x00\x25\x53\xb4"。
-
您好 pakzip,鉴于您真正要解决的问题下面的一个 cmets 是 Python 实现和 Objective-C 实现之间的区别。所以我可以建议您在您的问题中添加以下信息:(1)“正确”示例的输入和输出,其中正确意味着 Python 和 Objective-C 同意。 (2) “不正确”示例的输入和输出(显示输入和 Obj-C 输出以及 Python 输出)。 (3)python源码。有了这些信息,我们应该能够为您提供帮助!
标签: iphone objective-c sha256