gpt4 book ai didi

objective-c - 如何在 NSString 中使用 SHA1 哈希捕获 NSData?

转载 作者:行者123 更新时间:2023-12-04 06:36:16 24 4
gpt4 key购买 nike

我无法从字符串计算 SHA1 哈希,然后将其放回另一个字符串中。这是我所做的:

unsigned char hashedChars[20];
CC_SHA1([hashElements UTF8String], [hashElements lengthOfBytesUsingEncoding:NSUTF8StringEncoding], hashedChars);
NSData *hashedData = [NSData dataWithBytes:hashedChars length:20];
NSString *hash = [[NSString alloc] initWithData:hashedData encoding:NSUTF8StringEncoding];
NSLog(@"%s", hash);

日志的结果是(空)。我基本上通过组合几个字符串来创建一个字符串,然后尝试计算哈希值,该哈希值存储在 NSData 对象中,然后检索并放回哈希字符串中。当我记录 hashedData 时,我可以清楚地看到结果出现 - 这似乎是正确的。这应该表明第四行出了问题。但是什么?任何帮助是极大的赞赏。

亲切的问候,

驯鹿

最佳答案

SHA-1 是一个 20 字节的二进制块,不是有效的 UTF-8 字符串。这就是为什么 NSString 的 initWithData:encoding:失败。通常用于表示哈希和的是十六进制字符串。基本上,您需要的是[hashedData description] .

关于objective-c - 如何在 NSString 中使用 SHA1 哈希捕获 NSData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4837224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com