密码加密
密碼加密
一般在數(shù)據(jù)庫中存儲明文的密碼是不安全的,一般在項(xiàng)目中都會對密碼進(jìn)行加密密碼。加密肯定需要加密算法。加密算法分兩大類,一大類是可逆加密,另外一大類不可逆加密。可逆加密分兩類,一類是對稱加密,另外一類是非對稱加密。可逆加密一般都有公鑰和私鑰,一般對稱加密的私鑰在客戶端和服務(wù)器端都是一致的。非對稱加密私鑰在客戶端和服務(wù)器端是不一樣的。非可逆加密,有一個比較牛的美國人說過,任何加密算法的安全性都要建立在你的源碼已經(jīng)被別人獲取的情況下還算安全,那這種加密算法才算成功的。這就是非可逆加密。常用的非可逆加密算法有MD5和SHA1 ,SHA256等等。這些加密算法一般都是采用散列運(yùn)算來實(shí)現(xiàn)的。 /** * 測試非可逆加密算法 */ public class PasswordUtil { public static void main(String[] args) { String str = "123456"; //第一個參數(shù)代表加密使用的算法 第二個參數(shù)要加密的字符串 第三個參數(shù) 加入的鹽的值 第四個參數(shù) hash迭代的次數(shù) //以后再保存用戶的密碼應(yīng)該使用加密算法加密 SimpleHash simpleHash = new SimpleHash("md5",str,"123",10); String code = simpleHash.toString(); System.out.println("加密后的密文:"+code); } } 密碼加密存儲之后,在使用shiro做校驗(yàn)的時候,應(yīng)該在realm中做如下配置: 在自定義的realm中,傳入用戶密碼項(xiàng)對應(yīng)的鹽值:?
轉(zhuǎn)載于:https://www.cnblogs.com/duguangming/p/11047209.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: 解决无法将java项目部署到tomcat
- 下一篇: sql server 函数学习