打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Spring Acegi 各种加密方式详解
第五种:使用哈希算法加密,加密强度为256

Java代码
  1. <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
  2. <property name="userDetailsService" ref="userDetailsService" />
  3. <property name="passwordEncoder">
  4. <bean class="org.acegisecurity.providers.encoding.ShaPasswordEncoder">
  5. <constructor-arg value="256" />
  6. <property name="encodeHashAsBase64" value="false" />
  7. </bean>
  8. </property>
  9. </bean>
第六种:使用哈希算法加密,加密强度为SHA-256

Java代码
  1. <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
  2. <property name="userDetailsService" ref="userDetailsService" />
  3. <property name="passwordEncoder">
  4. <bean class="org.acegisecurity.providers.encoding.ShaPasswordEncoder">
  5. <constructor-arg value="SHA-256" />
  6. <property name="encodeHashAsBase64" value="false" />
  7. </bean>
  8. </property>
  9. </bean>
上述配置只是在Acegi通过表单提交的用户认证信息中的密码做各种加密操作。而我们存储用户密码的时候,可以通过一下程序完成用户密码操作:

Java代码
  1. package com.brofe.acegi;
  2. import org.acegisecurity.providers.encoding.Md5PasswordEncoder;
  3. import org.acegisecurity.providers.encoding.ShaPasswordEncoder;
  4. public class TestPasswordEncoder {
  5. public static void main(String[] args) throws Exception {
  6. md5(); // 使用简单的MD5加密方式
  7. sha_256(); // 使用256的哈希算法(SHA)加密
  8. sha_SHA_256(); // 使用SHA-256的哈希算法(SHA)加密
  9. md5_SystemWideSaltSource(); // 使用MD5再加全局加密盐加密的方式加密
  10. }
  11. public static void md5() {
  12. Md5PasswordEncoder md5 new Md5PasswordEncoder();
  13. // false 表示:生成32位的Hex版, 这也是encodeHashAsBase64的, Acegi 默认配置; true 表示:生成24位的Base64版
  14. md5.setEncodeHashAsBase64(false);
  15. String pwd md5.encodePassword("123"null);
  16. System.out.println("MD5: " pwd len=" pwd.length());
  17. }
  18. public static void sha_256() {
  19. ShaPasswordEncoder sha new ShaPasswordEncoder(256);
  20. sha.setEncodeHashAsBase64(false);
  21. String pwd sha.encodePassword("123"null);
  22. System.out.println("哈希算法 256: " pwd len=" pwd.length());
  23. }
  24. public static void sha_SHA_256() {
  25. ShaPasswordEncoder sha new ShaPasswordEncoder();
  26. sha.setEncodeHashAsBase64(false);
  27. String pwd sha.encodePassword("123"null);
  28. System.out.println("哈希算法 SHA-256: " pwd len=" pwd.length());
  29. }
  30. public static void md5_SystemWideSaltSource () {
  31. Md5PasswordEncoder md5 new Md5PasswordEncoder();
  32. md5.setEncodeHashAsBase64(false);
  33. // 使用动态加密盐的只需要在注册用户的时候将第二个参数换成用户名即可
  34. String pwd md5.encodePassword("123""acegisalt");
  35. System.out.println("MD5 SystemWideSaltSource: " pwd len=" pwd.length());
  36. }
  37. }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python是如何破解MD5,SHA512,DES加密的
hashlib模块使用详情
MessageDigest对密码进行加密 - study - BlogJava
用js实现本地md4、md5、sha1加密表单并提交
简单易用的加密工具(MD5)
java md5加密
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服