【发布时间】:2014-09-22 12:31:18
【问题描述】:
对于一个新项目,我需要使用 SHA256 散列一个 NSString。 我使用了以下代码:
unsigned char hashedChars[32];
NSString *inputString;
inputString = [NSString stringWithFormat:@"hello"];
NSData * inputData = [inputString dataUsingEncoding:NSUTF8StringEncoding];
CC_SHA256(inputData.bytes, inputData.length, hashedChars);
我在 stackoverflow 上找到了这段代码。 我并没有真正理解这段代码所做的所有事情,这里有一些关于代码的问题:
1.CC_SHA256做了一个hash,但是这个hash又会存入inputData?我的意思是我可以这样做:
NSString *string=CC_SHA256(..) //of course you can't put it directly in a NSString, but you get the point
2.最后hash必须是16进制字符串,但是CC_SHA256输出的类型是什么(UTF-8??)?
3.CC_SHA256的第一个参数为什么一定要在最后加上“inputData”就够了?
4.字符串的长度(第二个参数)需要什么?
5.最后一个参数对我来说没有任何意义,谁能解释一下为什么 hashedChars 必须是 32?
【问题讨论】:
标签: objective-c sha256