用Java新开发了一个系统。为了方便管理,就沿用了老用户信息,是之前一个C#开发的项目的用户信息。
之前C#版项目是使用MD5+Base64加密的密码。Java的MD5加密版本网上有很多个,但是加密结果也不尽相同不一样。查了很多方法,终于找到了解决方案。
1.C#加密过程处理
- //创建getMd5方法以获得userPwd的Md5值
- public string getMd5(string userPwd)
- {
- //获取userPwd的byte类型数组
- byte[] byteUserPwd = Encoding.UTF8.GetBytes(userPwd);
- //实例化MD5CryptoServiceProvider
- MD5CryptoServiceProvider myMd5 = new MD5CryptoServiceProvider();
- // byte类型数组的值转换为 byte类型的Md5值
- byte[] byteMd5UserPwd = myMd5.ComputeHash(byteUserPwd);
- //将byte类型的Md5值转换为字符串
- string strMd5Pwd = Encoding.Default.GetString(byteMd5UserPwd).Trim();
- //返回Md5字符串
- return strMd5Pwd;
- }
2.Java实现加密过程
- String s="111111";
- MessageDigest md5 = MessageDigest.getInstance("MD5");
- sun.misc.BASE64Encoder baseEncoder = new sun.misc.BASE64Encoder();
- String value=baseEncoder.encode(md5.digest(s.getBytes("utf-8")));
- System.out.println(value);
浙公网安备 33010602011771号