由于之前开发的项目使用的是C#,用户信息使用的C#的MD5加密码方式,而现在需要切换到Java平台下,关键问题是如何将用户信息通过Java方式的MD5加密码到与C#同样的结果。
经过查询资料与测试,Java与C#默认的MD5加密结果是一致的,主要是编码问题。(以前使用了是.NET的Unicode编码)
为了使当前j系统(java)能与以前的用户登录使用的密码一致(.net),只要是对java加密过程添加对应的编码格式。
import java.security.MessageDigest;
public class MD5Util
{
//生成MD5
public static byte[] getMD5(String message) {
String md5 = "";
byte[] md5Byte=null;
try {
MessageDigest md = MessageDigest.getInstance("MD5"); // 创建一个md5算法对象
byte[] messageByte = message.getBytes("UTF-16LE");
md.update(messageByte);
md5Byte = md.digest();
} catch (Exception e) {
e.printStackTrace();
}
return md5Byte;
}
}