我希望以高安全性加密和解密密码。 首先,将字符串密码转换为SHA1,然后我还要添加base64编码,最后添加SALT。
这在java中是否可行?
我有在base64和sha1中编码的示例代码,但我不知道如何将它们全部组合。
这是片段:
String password = "password";
BASE64Encoder encoder = new BASE64Encoder();
encryptedPassword = encoder.encode(password.getBytes());
使用SHA1:
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.reset();
md.update(password.getBytes());
System.out.println(new String(md.digest()));
请建议。
答案 0 :(得分:1)
这些是你在玩盐时必须考虑的事情:
- 使用CSPRNG生成长的随机盐。
- 将盐加入盐中 密码并使用标准加密哈希函数对其进行哈希处理 比如SHA256。
醇>
您需要将生成的Salt(使用加密安全伪随机数生成器生成)附加到密码,然后使用SHA-1对其进行哈希处理。
由于SHA-1是一种哈希算法,因此您无法对其进行解码。如果您需要加密密码,可以阅读有关AES或RSA
的内容我建议你阅读这篇文章Salted Password Hashing - Doing it Right,特别是正确的方法:如何正确地哈希,如果你仍然想要正确地散列你的密码。