使用了 HashedCredentialsMatcher 后密碼并沒有加密?
不太清楚有沒有碰到密碼沒有真正加密的問題...吾輩在 CustomRealm 中對傳進來的密碼進行了斷點查看發現并沒有加密(還是明文), 老師的課程中沒有對比密碼, 不知道會不會有沒有問題呢? (」゜ロ゜)」

查看傳入的 token 的值

不太清楚有沒有碰到密碼沒有真正加密的問題...吾輩在 CustomRealm 中對傳進來的密碼進行了斷點查看發現并沒有加密(還是明文), 老師的課程中沒有對比密碼, 不知道會不會有沒有問題呢? (」゜ロ゜)」

查看傳入的 token 的值

2018-04-27
舉報
2019-04-20
同學你好,你配置的只是shiro驗證的加密規則,在你保存的時候并沒有去加密,所以數據庫里的密碼還是明文,你在保存的方法那里設置一下加密算法名字,加密次數,鹽值即可。例子如下:
public?void?insert(User?user1)?{ ??//對用戶密碼進行加鹽處理 ??String?salt?=?RandomStringUtils.randomAlphabetic(20); ??user.setPassword(new?SimpleHash("MD5",user1.getPassword(),salt,20).toHex()); ??user1.setPassword(new?Sha256Hash(user1.getPassword(),salt,20).toHex()); ??user1.setSalt(salt); ??this.save(user1); }2018-09-24
你看的密碼沒有加密是正確的,
HashedCredentialsMatcher中的 public?boolean?doCredentialsMatch(AuthenticationToken?token,?AuthenticationInfo?info)?{ ????Object?tokenHashedCredentials?=?hashProvidedCredentials(token,?info); ????Object?accountCredentials?=?getCredentials(info); ????return?equals(tokenHashedCredentials,?accountCredentials); } 方法會對傳過來的明文密碼按照HashedCredentialsMatcher對象的設置進行加密,然后與數據庫里面的加密密碼進行比對的2018-08-18
我也是。。。。。。。沒有跟視頻里一樣,根本沒散列。。
2018-04-28
你的自定義realm的doGetAuthenticationInfo少了一行代碼,?指定salt鹽值。
如下: