應用自定義密碼加密規則(加鹽版)


開始吧

1、 SpringSecurity提供的BCryptPasswordEncoder加密規則。 (加鹽料理)

所以直接用就好了!配置類中注入BCryptPasswordEncoder即可,改掉之前自定義的加密那個~

    //SpringSecurity 提供的 BCryptPasswordEncoder 加密規則。 (加鹽料理)
    @Autowired
    BCryptPasswordEncoder bCryptPasswordEncoder;

    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder(){
        return new BCryptPasswordEncoder();
    }
      ...
    }
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
                //走賬號密碼驗證的方法
                .userDetailsService(myUserDetailsService)
                //走給輸入的密碼加密和比對兩個方法
                .passwordEncoder(bCryptPasswordEncoder);
    }

2、 測試即可

先加密存進數據庫

    public static void main(String[] args) {
        String password = "345";
        BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
        //加密4次
        for (int i = 0; i < 4; i++) {
            System.out.println(bCryptPasswordEncoder.encode(password));
        }
        //$2a$10$DuGfkxRfB3yKHgGlJa5XMOuBWTdN/LUL2X3PVzn/l8QyTpX./tsDe
        //$2a$10$g3dPiQpPKEtEsxZa3mVFnOC0FCCnwbOL88Sm3z2E9esDYIE6a52eG
        //$2a$10$NuviTSbDkaU/CIOEyRS20OyTAcPd16mStcLSvY3XzYwkVMRwFlrlC
        //$2a$10$ppvXuLtB0QTNAxMlmzoca.Te98CfCHRzNPVR9GQKlLe7eBWLumBF6
    }

測試成功的?不,不成功!!!

3、 錯誤!

org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.matches Encoded password does not look like BCrypt

笑了!搞的我輸入的密碼不像你BCrypt,代碼是框架處理的。我也檢查了,也在main方法中測試了是true的!你給我整個不像你的密碼!~~~

然后我就去找數據庫的麻煩!哈哈

發現的確是因為表中密碼字段的長度不夠!存入的加密后的字符串太長,沒有存完整。導致判斷的時候不匹配!

程序中出錯是好事兒!但是出錯多了那就是你細不細細心的問題了~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM