Spring security密码加密实现代码实例
xml配置如下
org.springframework.security spring-security-core 3.2.3.RELEASE
BCryptPasswordEncoder相关知识:
用户表的密码通常使用MD5等不可逆算法加密后存储,为防止彩虹表破解更会先使用一个特定的字符串(如域名)加密,然后再使用一个随机的salt(盐值)加密。
特定字符串是程序代码中固定的,salt是每个密码单独随机,一般给用户表加一个字段单独存储,比较麻烦。
BCrypt算法将salt随机并混入最终加密后的密码,验证时也无需单独提供之前的salt,从而无需单独处理salt问题。
代码如下
importorg.springframework.security.crypto.bcrypt.BCrypt; importorg.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; publicclassTest{ publicstaticvoidmain(String[]args){ //springsecurity注册加密方法 BCryptPasswordEncoderbCryptPasswordEncoder=newBCryptPasswordEncoder(); Stringencode=bCryptPasswordEncoder.encode("1"); System.out.println(encode); //$2a$10$H2HTe3SVdKMk8ewC3gRKouva7U6DAQspHqyhcdg805JGHAApV1Wci //$2a$10$Iz4Y52GmirUf5SRW6jTIA.0cgaS0mKTYZVN2cFFeK8DXk9YHVhJDW //springsecurity登录加密方法 BCryptbCrypt=newBCrypt(); Stringhashpw=bCrypt.hashpw("1","$2a$10$Iz4Y52GmirUf5SRW6jTIA.0cgaS0mKTYZVN2cFFeK8DXk9YHVhJDW"); System.out.println(hashpw); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。