我正在尝试在我的iPad应用程序中实现密码哈希。我找到secure salted password hashing链接,其中包含java,.net等的示例代码,但不是ios。任何人都可以帮我找到一个解决方案,就像他们做的一样......
答案 0 :(得分:1)
使用常见的加密库来制作密码的md5。
#import <CommonCrypto/CommonDigest.h>
然后使用。
- (NSString *) md5:(NSString *) input
{
const char *cStr = [input UTF8String];
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5( cStr, strlen(cStr), digest ); // This is the md5 call
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
答案 1 :(得分:1)
请注意MD5 is insecure,不应将其用于散列敏感信息(如密码)。你应该像这样使用SHA1或SHA256:
+ (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;
}