因为我对此很新,所以这个问题可能看起来微不足道,所以请不要用我父母的名字给我打电话......我有unsigned char和NSString..i想要将char值分配给string ...这是代码片段..
NSString *passwordDgst = @"somepassword";
unsigned char passwordDgstchar[CC_SHA512_DIGEST_LENGTH];
CC_SHA512(passwordDgst,
passwordDgst.length,
passwordDgstchar);
现在我想将unsigned char passwordDgstchar的值赋给字符串passwordDgst。我怎样才能做到这一点?
答案 0 :(得分:4)
这里有一些问题。该函数采用二进制输入并提供二进制输出。您的代码计算字符串对象的前12个字节的哈希值。您需要先将其转换为NSData。
NSData* input = [passwordDgst dataUsingEncoding: NSUTF8StringEncoding]; // Could use UTF16 or other if you like
unsigned char passwordDgstchar[CC_SHA512_DIGEST_LENGTH];
CC_SHA512([input bytes],
[input length],
passwordDgstchar);
passwordDgstchar现在包含原始二进制文件中的digiest。得到它(比如)hex:
NSMutableString* sha512 = [[NSMutableString alloc] init];
for (int i = 0 ; i < CC_SHA512_DIGEST_LENGTH ; ++i)
{
[sha512 appendFormat: @"%02x", passwordDgstChar[i];
}