因为我对这个问题很陌生,所以这个问题可能看起来很微不足道,所以请不要用我父母的名字称呼我...我有 unsigned char 和 NSString ..我想将 char 值分配给字符串.. .这是代码片段..
NSString *passwordDgst = @"somepassword";
unsigned char passwordDgstchar[CC_SHA512_DIGEST_LENGTH];
CC_SHA512(passwordDgst,
passwordDgst.length,
passwordDgstchar);
Run Code Online (Sandbox Code Playgroud)
现在我想将 unsigned char passwordDgstchar 的值赋给字符串 passwordDgst。我怎样才能做到这一点?
你这里有一些问题。该函数接受二进制输入并给出二进制输出。您的代码计算字符串对象的前 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);
Run Code Online (Sandbox Code Playgroud)
passwordDgstchar 现在包含原始二进制文件中最数字的。将其放入(例如)十六进制:
NSMutableString* sha512 = [[NSMutableString alloc] init];
for (int i = 0 ; i < CC_SHA512_DIGEST_LENGTH ; ++i)
{
[sha512 appendFormat: @"%02x", passwordDgstChar[i];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6612 次 |
最近记录: |