安卓適配Spring框架的ShaPasswordEncoder加密詳解

最近項目要做一個離線登錄,賬號密碼與在線一樣;

實現方法是下載服務器的所以用戶名和密碼,但是服務的密碼是經過框架加密的,通過閱讀源碼,知道spring框的ShaPasswordEncoder加密是通過密碼拼接salt,然後經過加密得到的,代碼如下:

 public static String mergePasswordAndSalt(String password, Object salt, boolean strict) {
        if (password == null) {
            password = "";
        }
        if (strict && salt != null && (salt.toString().lastIndexOf("{") != -1 || salt.toString().lastIndexOf("}") != -1)) {
            throw new IllegalArgumentException("Cannot use { or } in salt.toString()");
        } else {
            return salt != null && !"".equals(salt) ? password + "{" + salt.toString() + "}" : password;
        }
    }

逆向得知加密方法,從而解決離線的判斷登錄用戶名和密碼是否正確。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章