我需要加密用户在UI上的文本框中输入的密码,保存它,然后在调用getPassword()方法时对其进行解密。
我应该使用哪种正确的JDK 1.4 API?
提前致谢。
答案 0 :(得分:1)
这里有一个使用Java 1.4加密接口进行MD5加密的例子:
http://download.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html#HmacEx
河豚: http://download.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html#BlowKeyEx
答案 1 :(得分:1)
如果您想保护密码,您可能需要使用像MD5或SHA1这样的哈希算法。您不希望解密存储的密码以将其与登录时提供的密码进行比较,而是散列提供的密码并比较哈希值
这里有一些关于可用于哈希的方法的文档: https://www.owasp.org/index.php/Hashing_Java
答案 2 :(得分:0)
只需将Cipher与“AES / CBC / PKCS5Padding”机制一起使用(在getInstance()中)。您可以使用使用SecretKeySpec创建的128位(16字节)AES密钥(这已经是密钥了!)。较高的比特率将需要安装无限制的加密策略文件。正如我所说,请注意,这只是模糊了数据,因为密钥需要与应用程序一起存储 - 所以知道该做什么的人可以检索密码和密钥并解密应用程序之外的信息
如果使用相同的密钥存储多个密码,请确保为每个密码生成并存储单独的随机IV。最后一段中的建议更多的是让你知道如何正确加密东西,因为它更容易获得密钥,而不是在没有它的情况下解密数据。