md5 加密为什么要update2次? 5
加密的时候为什么要update()两次呢?byte[]salt=newbyte[12];random.nextBytes(salt);MessageDigestmd5=M...
加密的时候为什么要update()两次呢?
byte[] salt = new byte[12];
random.nextBytes(salt);
MessageDigest md5 = MessageDigest.getInstance("MD5");
md.update(salt);
md.update(password.getBytes("UTF-8"));
byte[] digest = md.digest(); 展开
byte[] salt = new byte[12];
random.nextBytes(salt);
MessageDigest md5 = MessageDigest.getInstance("MD5");
md.update(salt);
md.update(password.getBytes("UTF-8"));
byte[] digest = md.digest(); 展开
2个回答
2016-11-25
展开全部
/*
* MD5加密
*/
private String getMD5Str(String str) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
//16位加密,从第9位到25位
return md5StrBuff.substring(8, 24).toString().toUpperCase();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询