使用什么API和算法来使用java加密和解密密码

use*_*206 5 java security encryption passwords password-encryption

我目前正在使用Java创建应用程序,我使用java搜索密码加密,但结果是如此巨大,我感到不堪重负.如何使用Java加密和解密密码?加密和解密密码的最佳做法是什么?我猜测MD5不是一种方法,因为它是一种单向哈希.我使用struts2作为我的框架,想知道他们是否提供密码加密

tok*_*khi 7

更新:

试试JBCrypt:

String password = "MyPassword123";
String hashed = BCrypt.hashpw(password, BCrypt.gensalt(12));
System.out.println(hashed);  // $2a$12$QBx3/kI1SAfwBDFOJK1xNOXK8R2yC7vt2yeIYusaqOisYbxTNFiMy
Run Code Online (Sandbox Code Playgroud)

从这里下载jBCrypt-0.3,查看README文件以获取更多详细信息.

  • 任何具有单次迭代的通用哈希(MD5,SHA-x,...)都太快了.你应该使用一个特别昂贵的结构,如bcrypt,scrypt或至少PBKDF2. (2认同)