直播系統app原始碼,shiro簡單的密碼加鹽與密碼驗證

zhibo系統開發發表於2023-02-15

直播系統app原始碼,shiro簡單的密碼加鹽與密碼驗證

public class test {
    public static void main(String[] args){
                                      //假設向資料庫存入加密的物件
        UserDto user=new UserDto();   //建立一個物件
        user.setPassword("123456");   //模擬密碼123456
        user.setSalt(ShiroKit.getRandomSalt(5));   //獲取5位數的鹽
        user.setPassword(ShiroKit.md5(user.getPassword(), user.getSalt()));   //把鹽與密碼傳入方法中進行 md5加密方式 的1024次加密  最後得出加密密碼
        System.out.println("密碼:"+user.getPassword()+"     "+"Salt:"+ user.getSalt());  //列印  加密後的密碼   與   鹽的值
//最後把物件存入資料庫中,小編看的guns專案以使用者名稱不重複才可存入資料庫
//模擬密碼
        String str=new String();
        str="123456";   //模擬密碼為123456
        //封裝請求賬號密碼為shiro可驗證的token
        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("huasheng", str.toCharArray());   //"huasheng"為登入時輸入的使用者名稱,這裡直接寫了字串
        //獲取資料庫中的賬號密碼,準備比對   查詢使用者名稱所在的使用者資料  這裡直接用上面定義的user進行測試
//        User user = userMapper.getByAccount(username);
        String credentials = user.getPassword();//獲取本賬號加密過的密碼
        String salt = user.getSalt();           //獲取本賬號中對應鹽值
        ByteSource credentialsSalt = new Md5Hash(salt); //放入鹽值
        System.out.println("credentialsSaltgetBytes"+credentialsSalt.getBytes());
        System.out.println("credentialsSaltgetClass"+credentialsSalt.getClass());
        SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                new ShiroUser(), credentials, credentialsSalt, "");//第一個引數是物件,密碼,ByteSource物件,realmName
        //校驗使用者賬號密碼
        HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
        md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);//MD5
        md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);//1024
        boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( usernamePasswordToken, simpleAuthenticationInfo);//驗證
        if (passwordTrueFlag) {
//            HashMap<String, Object> result = new HashMap<>();
//            result.put("token", JwtTokenUtil.generateToken(String.valueOf(user.getId())));
//            return result;
            System.out.println("登陸成功");
        } else {
//            return new ErrorResponseData(500, "賬號密碼錯誤!");
            System.out.println("賬號密碼錯誤!");
        }
    }
}


以上就是 直播系統app原始碼,shiro簡單的密碼加鹽與密碼驗證,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2935407/,如需轉載,請註明出處,否則將追究法律責任。

相關文章