gpt4 book ai didi

java - 我如何对密码进行三层加密,SHA1,base64编码和盐

转载 作者:行者123 更新时间:2023-12-01 11:34:01 24 4
gpt4 key购买 nike

我想对密码进行高安全性的加密和解密。首先,将字符串密码转换为 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()));

请提出建议。

最佳答案

这些是你在使用盐时必须考虑的事情:

  1. Generate a long random salt using a CSPRNG.
  2. Prepend the salt to the password and hash it with a standard cryptographic hash function such as SHA256.

您需要将生成的 Salt(使用加密安全伪随机数生成器生成)附加到密码中,然后使用 SHA-1 对其进行哈希处理。

由于 SHA-1 是一种哈希算法,因此您无法对其进行解码。如果您需要加密密码,您可以阅读有关AES的内容或RSA

我建议您阅读这篇文章,Salted Password Hashing - Doing it Right ,特别是正确的方法:如何正确地散列部分,如果您仍然想正确地散列您的密码。

关于java - 我如何对密码进行三层加密,SHA1,base64编码和盐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30183468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com