簡體   English   中英

我如何在SHA1,base64編碼和Salt三層加密密碼

[英]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()));

請提出建議。

這些是您在玩鹽時必須考慮的事情:

  1. 使用CSPRNG生成長隨機鹽。
  2. 將鹽添加到密碼中,並使用標准的加密哈希函數(例如SHA256)對其進行哈希處理。

您需要將生成的Salt(使用加密安全的偽隨機數生成器生成 )附加到密碼,然后使用SHA-1對其進行哈希處理。

由於SHA-1是哈希算法,因此您無法對其進行解碼。 如果您需要加密密碼,則可以閱讀有關AESRSA的內容

如果您仍然想正確地對密碼進行哈希處理,建議您閱讀這篇文章, 鹽腌密碼哈希-做正確 ,特別是“正確的方法:如何正確哈希”這一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM