工作SHA1代码的iOS5在iOS6的
不起作用以下工作就好了iOS5的基类,但失败(SIGABRT)与iOS6的。它可能是一个操作系统的东西或架构的东西?工作SHA1代码的iOS5在iOS6的
重要的是还要注意的是伴随MD5哈希不工作。
-(NSString *)SHA1Hash {
const char *cStr = [self UTF8String];
unsigned char digest[16];
CC_SHA1(cStr, strlen(cStr), digest); // This is the sha1 call
NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
感谢任何及所有的帮助!
你可能都拿到 “幸运” 在iOS 5,SHA-1摘要是20个字节,而不是16:
unsigned char digest[16];
我的运气已经用完了的话,不知道该如何管理这么久的工作。你首先正确回答,所以我会奖励你接受,谢谢! – sbonami
使用宏CC_SHA1_DIGEST_LENGTH
声明你的摘要长度。 16太短,所以你捣毁了堆栈。
unsigned char digest[CC_SHA1_DIGEST_LENGTH];
从手册页CC_SHA1
CC_SHA1()计算在数据的len个字节的SHA-1的消息摘要和 其放置在MD(其必须具有用于CC_SHA1_DIGEST_LENGTH == 20空间 字节的输出)。它返回md指针。
你是对的,但迈克第一回答,谢谢你的彻底答案! – sbonami
它怎么会失败呢? –
哇,我怎么错过了?上述编辑(SIGABRT) – sbonami