Java如何實現密碼加密
阿新 • • 發佈:2020-08-19
在查詢時,我們如果要對使用者的登入資訊進行加密,通常會將其密碼進行加密.
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密碼加密的資料請關注我們其它相關文章!