web创建账户,密码用MD5摘要加密后存入,主要代码如下
得到MD5摘要
public class MD5 {
public static String generateCode(String str) throws Exception{ //MD5加密
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] srcBytes = str.getBytes();
md5.update(srcBytes);
byte[] resultBytes = md5.digest();
String result = new String(resultBytes);
return result;
}
}
存入密码
String test=request.getParameter("password");
String test2=MD5.generateCode(test);
account.setPassword(test2);
立马取出,取出的代码,就是在mysql中找到账户名下的密码取出,觉得应该没什么问题。
String frepassword=DAOFactory.getIAccountDAOInstance().findByAcoount(request.getParameter("account"));
举例:密码为123456
存入时,MD5摘要处理后为 ��I篩V郬��(myeclipse中String复制的)
立马取出密码为 ��I??V?��
补充:如果我不经过加密,直接存入密码123456,再从数据库中取出,也是123456没有任何问题。我觉得应该是java的MD5加密和mysql有什么编码冲突,真心请教。