BCrypt加密算法在spring security中的使用

        用戶表的密碼通常使用MD5等不可逆算法加密後存儲,爲防止彩虹表破解更會先使用一個特定的字符串(如域名)加密,然後再使用一個隨機的salt(鹽值)加密。 特定字符串是程序代碼中固定的,salt是每個密碼單獨隨機,一般給用戶表加一個字段單獨存儲,比較麻煩。 BCrypt算法將salt隨機並混入最終加密後的密碼,驗證時也無需單獨提供之前的salt,從而無需單獨處理salt問題

//密碼加密

BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

String password = passwordEncoder.encode(seller.getPassword());

seller.setPassword(password);

修改spring-security.xml ,添加如下配置

<beans:bean id="bcryptEncoder"  
        class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />

修改認證管理器的配置

    <!-- 認證管理器 -->
    <authentication-manager alias="authenticationManager">  
        <authentication-provider user-service-ref='userDetailService'>   
          	<password-encoder ref="bcryptEncoder"></password-encoder>	   		
        </authentication-provider>  
    </authentication-manager>  

 

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