参考自:http://www.cnblogs.com/qingyuan/archive/2009/12/11/1621913.html
用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);