2013-04-12 54 views
2

基本上我想要加密和解密密码在iOS在iOS中使用MD5算法解密加密字符串

到目前为止,我已经使用下面的方法

- (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. 如果第一个是不可能的,那么,还有没有其他的替代品,加密和解密iOSNSString

我很欢迎您的建议在此,请。

回答

6
  1. 是的,的确如此。 MD5是一种单向散列函数。您可以比较两个MD5哈希的字符串来检查原始输入是否相等。

  2. 看一看的AES加密的NSString讨论here

+0

感谢您关注AES。 –

3

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

看一看OpenSSL的替代。

+0

+1什么MD5是显而易见的音符,但-1'除非你设法蛮力it' –

+1

@ H2CO3可以请你指导我更多的蛮力和OpenSSL? –

+0

@Bhargavi不要打扰蛮力,而是使用设计为可逆的算法。 AES是今天的主要标准之一。有很多关于如何在iOS上使用它的信息。 – borrrden

2

MD5是一个密码散列函数。你不能解密生成的散列。

+0

你是否知道加密和解密的替代方案? –

+0

@Bhargavi寻找AES – peko

相关问题