Spring security密碼加密實(shí)現(xiàn)代碼實(shí)例
xml配置如下
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>3.2.3.RELEASE</version></dependency>
BCryptPasswordEncoder相關(guān)知識(shí):
用戶表的密碼通常使用MD5等不可逆算法加密后存儲(chǔ),為防止彩虹表破解更會(huì)先使用一個(gè)特定的字符串(如域名)加密,然后再使用一個(gè)隨機(jī)的salt(鹽值)加密。
特定字符串是程序代碼中固定的,salt是每個(gè)密碼單獨(dú)隨機(jī),一般給用戶表加一個(gè)字段單獨(dú)存儲(chǔ),比較麻煩。
BCrypt算法將salt隨機(jī)并混入最終加密后的密碼,驗(yàn)證時(shí)也無(wú)需單獨(dú)提供之前的salt,從而無(wú)需單獨(dú)處理salt問(wèn)題。
代碼如下
import org.springframework.security.crypto.bcrypt.BCrypt;import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;public class Test { public static void main(String[] args) { // springsecurity 注冊(cè)加密方法 BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(); String encode = bCryptPasswordEncoder.encode('1'); System.out.println(encode); //$2a$10$H2HTe3SVdKMk8ewC3gRKouva7U6DAQspHqyhcdg805JGHAApV1Wci //$2a$10$Iz4Y52GmirUf5SRW6jTIA.0cgaS0mKTYZVN2cFFeK8DXk9YHVhJDW // springsecurity 登錄加密方法 BCrypt bCrypt = new BCrypt(); String hashpw = bCrypt.hashpw('1', '$2a$10$Iz4Y52GmirUf5SRW6jTIA.0cgaS0mKTYZVN2cFFeK8DXk9YHVhJDW'); System.out.println(hashpw); }}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. XML入門(mén)的常見(jiàn)問(wèn)題(一)2. CSS3中Transition屬性詳解以及示例分享3. 使用css實(shí)現(xiàn)全兼容tooltip提示框4. 詳解CSS偽元素的妙用單標(biāo)簽之美5. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera6. 告別AJAX實(shí)現(xiàn)無(wú)刷新提交表單7. uni-app低成本封裝一個(gè)取色器組件的簡(jiǎn)單方法8. 輕松學(xué)習(xí)XML教程9. XHTML 1.0:標(biāo)記新的開(kāi)端10. 解析原生JS getComputedStyle
