你能帮帮我吗?
我已经开发了一个iOS应用程序。我试图用3DES算法加密一个字符串,但我在Java代码中发现了不同的结果。密钥应为md5,大小为24字节。我的朋友用Java对明文进行了加密,得到了一个加密的base64字符串。但是我得到了不同的结果。:(
我哪里错了?
发布于 2013-01-30 23:42:14
md5输出128位(16字节)散列,而3DES采用168位(21字节)密钥。我怀疑在加密和/或解密算法中传递md5散列会导致一些填充。
最好使用SHA256 (它输出256位散列)并将输出截断为168位,或者使用AES-256而不是3DES,并使用完整的256位散列作为密钥。更好的做法是使用适当的密钥派生函数,如PBKDF2,从字符串密码创建密钥。
https://stackoverflow.com/questions/14599066
复制相似问题