【发布时间】:2015-10-08 18:41:02
【问题描述】:
我使用了从here 获取的以下代码。
- (NSData *)sha256:(NSData *)data {
unsigned char hash[CC_SHA256_DIGEST_LENGTH];
if ( CC_SHA256([data bytes], [data length], hash) ) {
NSData *sha256 = [NSData dataWithBytes:hash length:CC_SHA256_DIGEST_LENGTH];
return sha256;
}
return nil;
}
NSData *imageHash=[self sha256:imageData];
imageHashtag = [imageHash base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
虽然我遇到了一些问题 - 正在创建的哈希包括 / 和 = 不应该在那里。 有人可以帮我弄清楚我在这里犯的错误吗?我该如何解决?
编辑:我发现了可能的问题 - 我正在将作为 base64 编码数据的 sha 哈希转换回另一个 base64 字符串。 但是当我使用以下代码将哈希数据转换为字符串时,我只得到零。 那么有人可以帮我将 sha 哈希转换为字符串吗?
imageHashtag = [NSString stringWithUTF8String:[imageHash bytes]];
imagehash 确实有 32 位数据,但 imagehashtag 为 nil。
【问题讨论】:
标签: ios objective-c sha256