如何在三层加密密码,SHA1,base64编码和盐

时间:2015-05-12 06:34:36

标签: java base64 sha1 salt password-encryption

我希望以高安全性加密和解密密码。 首先,将字符串密码转换为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 个答案:

答案 0 :(得分:1)

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

  
      
  1. 使用CSPRNG生成长的随机盐。
  2.   
  3. 将盐加入盐中   密码并使用标准加密哈希函数对其进行哈希处理   比如SHA256。
  4.   

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

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

的内容

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