1. 程式人生 > 程式設計 >Java如何實現密碼加密

Java如何實現密碼加密

在查詢時,我們如果要對使用者的登入資訊進行加密,通常會將其密碼進行加密.

1) 可以藉助spring框架工具類DigestUtils

2) 也可以使用shiro框架來實現

//儲存使用者自身資訊
//1構建一個鹽值物件
String salt=UUID.randomUUID().toString();//隨機字串
//2對密碼進行鹽值加密(加密演算法MD5-特點:不可逆,相同內容加密結果也相同)
//2.1加密方式1(藉助spring框架工具類DigestUtils)
//String newPassword=DigestUtils.md5DigestAsHex((salt+entity.getPassword()).getBytes());
//2.2加密方式2(藉助shiro框架中的API)
SimpleHash sh=new SimpleHash("MD5",entity.getPassword(),salt,1);
String newPassword=sh.toHex();
System.out.println("newPassword="+newPassword);
entity.setSalt(salt);
entity.setPassword(newPassword);

以上就是兩者方式分別使用,

注意:

鹽值salt:UUID.randomUUID().toString();生成的是一個隨機字串.

SimpleHash sh=new SimpleHash("MD5",1);

這行shiro框架提供的加密中,

第一個引數"MD5"為加密演算法,其特點:不可逆(只能加密不能解密),但是相同內容加密結果也相同;

第二個引數source,代表原密碼;

第三個引數salt,就是我們先生成的鹽值隨機數;

第四個引數1,代表加密次數,我們這裡只加密了一次.

entity.setSalt(salt);
entity.setPassword(sh.toHex());

加密處理過後,我們再將新修改的密碼轉換為16進位制數賦值給物件,salt的傳遞看你物件屬性的設定.

然後再根據新的物件內的資料進行操作即可.

以上就是Java如何實現密碼加密的詳細內容,更多關於Java密碼加密的資料請關注我們其它相關文章!