在iOS应用程序中实现密码哈希

时间:2014-12-03 12:35:17

标签: ios hash

我正在尝试在我的iPad应用程序中实现密码哈希。我找到secure salted password hashing链接,其中包含java,.net等的示例代码,但不是ios。任何人都可以帮我找到一个解决方案,就像他们做的一样......

2 个答案:

答案 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;
}