-1

我正在使用 MD5 算法与要使用 MD5 算法发送数据的服务器同步。我写了以下代码-

NSString *string =  @"ABC";
    unsigned char *inStrg = (unsigned char*)[[string dataUsingEncoding:NSASCIIStringEncoding] bytes];
    unsigned long lngth = [string length];
    unsigned char result[MD5_DIGEST_LENGTH];
    NSMutableString *outStrg = [NSMutableString string];

    MD5(inStrg, lngth, result);

    unsigned int i;
    for (i = 0; i < MD5_DIGEST_LENGTH; i++)
    {
        [outStrg appendFormat:@"%02x", result[i]];
    }
    md5TextField.text = outStrg;

对于服务器端的解密,我需要它的密钥,通过它生成 MD5 文本。它的关键是什么?提前致谢...

4

2 回答 2

1

MD5 是一个不可逆的散列函数(因此设计为不可逆的)。如果您需要简单的加密,则应该使用 AES 进行对称加密。

查看 iPhone 上 NSString 的 AES 加密以获取更多信息。

于 2011-05-31T05:57:39.650 回答
1

如前所述,您无法从哈希中取回原始值。您不太可能将任何值以其原始形式存储在服务器中。存储哈希并将其与您在应用程序中生成的哈希进行比较以进行身份​​验证。由于 MD5 与系统无关,因此您不必担心“密钥”,因为您不会将其作为参数传递。如果您将原始值存储在服务器中,您可以计算服务器中字符串的 MD5,然后进行比较。

于 2011-05-31T06:42:36.090 回答