【问题标题】:Decrypt encrypted string in iOS using MD5 algorithm使用MD5算法解密iOS中的加密字符串
【发布时间】:2013-04-04 14:25:30
【问题描述】:

基本上我想加密和解密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. 如果第一个不可能,那么在iOS 中加密和解密NSString 是否有任何其他替代方法。

我非常欢迎您对此提出建议。

【问题讨论】:

    标签: ios objective-c nsstring md5 encryption


    【解决方案1】:
    1. 是的,这是真的。 MD5 是一种单向哈希函数。您可以比较两个 MD5 散列字符串来检查原始纯输入是否相等。

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

    【讨论】:

      【解决方案2】:

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

      看看 OpenSSL。

      【讨论】:

      • +1 表示 md5 是什么,但 -1 表示 Unless you manage to brute force it
      • @H2CO3 你能指导我更多关于蛮力和 OpenSSL 的知识吗?
      • @Bhargavi 不要为蛮力而烦恼,而是使用一种被设计为可逆的算法。当今的领先标准之一是 AES。有很多关于如何在 iOS 上使用它的信息。
      • @borrrden 谢谢 :) 。我正在寻找 AES。
      • @WebnetMobile 我敢肯定,如果我没有发表关于蛮力的评论,你会抱怨说“'你无法取回数据'在技术上并不正确”。 ..
      【解决方案3】:

      MD5 是一种加密散列函数。您无法解密生成的哈希。

      【讨论】:

      • 你知道加密和解密的任何替代方法吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 2013-01-13
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多