我如何对密码进行三层加密,SHA1,base64 编码和盐
How do i encrypt password in three layers , SHA1, base64 encode and salt
我想对密码进行高安全性的加密和解密。
首先,将字符串密码转换为 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()));
请推荐。
这些是你在玩盐时必须考虑的事情:
- Generate a long random salt using a CSPRNG.
- Prepend the salt to the
password and hash it with a standard cryptographic hash function
such as SHA256.
您需要将生成的 Salt(使用 加密安全伪随机数生成器 生成)附加到密码,然后使用 SHA-1 对其进行哈希处理。
由于 SHA-1 是一种散列算法,您无法对其进行解码。如果您需要加密密码,您可以阅读有关AES or RSA
的内容
我建议您阅读这篇文章,Salted Password Hashing - Doing it Right,特别是 正确的方法:如何正确散列,如果您仍然想正确地散列您的密码。
我想对密码进行高安全性的加密和解密。 首先,将字符串密码转换为 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()));
请推荐。
这些是你在玩盐时必须考虑的事情:
- Generate a long random salt using a CSPRNG.
- Prepend the salt to the password and hash it with a standard cryptographic hash function such as SHA256.
您需要将生成的 Salt(使用 加密安全伪随机数生成器 生成)附加到密码,然后使用 SHA-1 对其进行哈希处理。
由于 SHA-1 是一种散列算法,您无法对其进行解码。如果您需要加密密码,您可以阅读有关AES or RSA
的内容我建议您阅读这篇文章,Salted Password Hashing - Doing it Right,特别是 正确的方法:如何正确散列,如果您仍然想正确地散列您的密码。