使用md5密钥进行iOS 3DES加密

时间:2013-01-30 07:55:42

标签: ios objective-c encryption md5 3des

你能帮帮我吗?

我开发了一个iOS应用程序。我尝试使用3DES算法加密字符串,但我发现了与Java代码不同的结果。密钥应为md5,大小为24字节。我的朋友用Java加密了明文,他得到了一个加密的base64字符串。但我得到了不同的结果。 :(

我哪里错了?

1 个答案:

答案 0 :(得分:2)

md5输出128位(16字节)散列,而3DES输出168位(21字节)密钥。我怀疑将md5哈希传递给您的加密和/或解密算法会导致在此过程中发生一些填充。

最好使用SHA256(输出256位散列)并将输出截断为168位,或者使用AES-256而不是3DES,并使用完整的256位散列作为键。甚至比使用PBKDF2这样的正确密钥派生函数从字符串密码创建密钥更好。