后台的加密代码:用户名:zhangsan   密码:123

/**
* 编译密码,即加密
* @param user 用户信息
* @param password 密码
* @return 返回值为加密加盐值后的密码(密码,用户名)
*/
private String encodePassword(VtUser user, String password) {
Md5PasswordEncoder md5 = new Md5PasswordEncoder();
//用户名是盐值,最后生成盐值md5
return md5.encodePassword(password, user.getUserName());
}

测试用例:
userName: zhangsan
password: 123
加密后password: b2316c0d1ff0550298121a537ab93f21

先看下MessageDigestPasswordEncoder.java加密函数, 用户名是盐值, 最终生成盐值MD5:

public String   encodePassword(String rawPass, Object salt) {
         String saltedPass = mergePasswordAndSalt(rawPass, salt, false); //字符串拼接成rawPass{salt}格式
         MessageDigest messageDigest = getMessageDigest();  //就是MessageDigest.getInstance
         byte[] digest = messageDigest.digest(Utf8.encode(saltedPass));  //转换成utf-8格式字节流
         // "stretch" the encoded value if configured to do so
         for (int i = 1; i < iterations; i++) {
             digest = messageDigest.digest(digest);  //iterations的初值是1, 所以不会进来
         }
         if (getEncodeHashAsBase64()) {   //该函数默认返回false
             return Utf8.decode(Base64.encode(digest));
         } else {
             return new String(Hex.encode(digest)); //最终执行这一行
         }
    }

md5如何实现encodePassword加密方法的更多相关文章

  1. MD5的32位加密方法

    /// <summary> /// MD532位加密方式 /// </summary> /// <param name="str">用户原始密码 ...

  2. iOS常见的几种加密方法(base64.MD5.Token传值.系统指纹验证。。加密)

    普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 一. base64加密 base64 编码是现代密码学的基础 基本原理: 原本是 8个bit 一组 ...

  3. .net系统的MD5加密方法

    /// <summary>/// .net系统的MD5加密方法/// </summary>/// <param name="strIN">< ...

  4. python文件的md5加密方法

    本文实例讲述了python文件的md5加密方法.分享给大家供大家参考,具体如下: 一.简单模式: from hashlib import md5 def md5_file(name): m = md5 ...

  5. iOS常用加密方法(aes、md5、base64)

    1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...

  6. MD5 32位 小写加密和大写加密

    /** * MD5加密方法 */ public static String MD5(String str) { MessageDigest md5 = null; try { md5 = Messag ...

  7. iOS里常见的几种信息编码、加密方法简单总结

    一.MD5 MD5编码是最常用的编码方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码. MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对的 ...

  8. C#:使用MD5对用户密码加密与解密

    C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...

  9. Java中常用的加密方法(JDK)

    加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些 ...

随机推荐

  1. 【Codeforces Round #493 (Div. 2) B】Cutting

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然只有在前i个位置奇数偶数出现次数都相同的地方才能切. (且不管前面怎么切,这里都能切的. 那么就相当于有n个物品,每个物品的代价 ...

  2. 【codeforces 807A】Is it rated?

    [题目链接]:http://codeforces.com/contest/807/problem/A [题意] 给你n个人在一场CF前后的rating值; 问你这场比赛是不是计分的 [题解] 如果有一 ...

  3. SSH框架整合截图(二)

    客户拜访管理 1 什么是客户拜访 (1)客户:与公司有业务往来的 (2)用户:可以使用系统的人 2 用户和客户关系 (1)用户和客户之间是拜访的关系 (2)用户 和 客户 是 多对多关系 ** 一个用 ...

  4. BA--干球温度、露点温度和湿球温度--概念

    1. 干球温度.露点温度和湿球温度 dry bulb temperature, dew temperature, and wet-bulb temperature 摘要:未饱和湿空气中水蒸汽处于过热状 ...

  5. maven下载的jar包可以查看源码

    1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...

  6. warning:deprecated conversion from string constant to &#39;char *&#39;

    warning:deprecated conversion from string constant to 'char *' 解决方式 #include <iostream> using ...

  7. Apache + Tomcat 负载均衡 session复制

    转自:http://blog.csdn.net/cssmhyl/article/details/8455400 http://snowolf.iteye.com/blog/743611 Apache  ...

  8. 【SDOI 2016】 排列计数

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4517 [算法] 有m个数在原来的位置上,说明有(n-m)个数不再原来的位置上 那么, ...

  9. js如何计算浮点数

    js中浮点型是如何运算的呢? 例如:var a=0.69; 我想得到6.9 直接这样写 var c=a*10; alert(c);   得到结果是:6.8999999999999995 到网上一搜,有 ...

  10. [实例]ROS使用OpenCV读取图像并发布图像消息在rviz中显示

    思路: (1)使用opencv读取本地图像 (2)调用cv_bridge::CvImage().toImageMsg()将本地图像发送给rviz显示 一.使用opencv读取本地图像并发布图像消息 ( ...