我必须将短语'1234'转换为其SHA-1哈希的Base64编码.
我希望:'1234'= cRDtpNCeBiql5KOQsKVyrA0sAiA =(此示例与服务器通信有关)...
但是当我在这些网站上检查手动或在我的XCode项目中使用我的方法时,结果总是不同的:
1234
SHA-1(后http://www.sha1.cz/)7110eda4d09e062aa5e4a390b0a572ac0d2c0220
在Base64之后(http://base64-encoder-online.waraxe.us/)NzExMGVkYTRkMDllMDYyYWE1ZTRhMzkwYjBhNTcyYWMwZDJjMDIyMA ==
这是我的SHA-1功能:
- (NSString *)sha1:(NSString *)str {
const char *cStr = [str UTF8String];
unsigned char result[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(cStr, strlen(cStr), result);
NSString *s = [NSString stringWithFormat:
@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3], result[4],
result[5], result[6], result[7],
result[8], result[9], result[10], result[11], result[12],
result[13], result[14], result[15],
result[16], result[17], result[18], result[19]
];
return [s lowercaseString];
}
Run Code Online (Sandbox Code Playgroud)
对于Base64,我使用这个类:http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html
这是SHA-1和Base64的调用:
NSString *pwHash =[self sha1:self._txtFieldPW.text]; //In my case '1234'
NSLog(@"Hash: %@",pwHash); //7110eda4d09e062aa5e4a390b0a572ac0d2c0220
//7110eda4d09e062aa5e4a390b0a572ac0d2c0220
NSData *pwHashData …Run Code Online (Sandbox Code Playgroud)