使用MD5算法解密iOS中的加密字符串

时间:2013-04-12 06:51:46

标签: ios objective-c nsstring md5 encryption

基本上我想在iOS加密和解密密码。

到目前为止,我使用了以下方法来加密密码

- (NSString *) stringFromMD5{

    if(self == nil || [self length] == 0)
        return nil;

    const char *value = [self UTF8String];

    unsigned char outputBuffer[CC_MD5_DIGEST_LENGTH];
    CC_MD5(value, strlen(value), outputBuffer);

    NSMutableString *outputString = [[NSMutableString alloc] initWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for(NSInteger count = 0; count < CC_MD5_DIGEST_LENGTH; count++){
        [outputString appendFormat:@"%02x",outputBuffer[count]];
    }

    return [outputString autorelease];
}

这是使用MD5哈希来加密字符串。

问题:

  1. 当我在某处读到时,无法解密MD5哈希。这是真的吗?如果没有,那么请指导我使用MD5进行解密。
  2. 如果第一个不可能,那么在NSString中加密和解密iOS是否还有其他选择。
  3. 我非常欢迎您提出这方面的建议。

3 个答案:

答案 0 :(得分:6)

  1. 是的,这是真的。 MD5是单向散列函数。您可以比较两个MD5哈希字符串,以检查原始普通输入是否相等。

  2. 查看NSString讨论的{AES}加密here

答案 1 :(得分:3)

MD5不是加密算法,它是一个哈希函数。除非你设法暴力破解它,否则无法从哈希中恢复原始数据。

请看看OpenSSL。

答案 2 :(得分:3)

MD5是加密哈希函数。您无法解密生成的哈希值。