MD5 信息摘要算法
Posted QQ_851228082
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MD5 信息摘要算法相关的知识,希望对你有一定的参考价值。
介绍
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
注意,无论数据数据多少,MD5总是产生128 bit的二进制数据。
32位版本
MD5有32个字符和16个字符两个版本,32个字符版本的原理:每4 bit转为一个16(2的4次方)进制的字符,所以md5运算后产生32(128/4)个字符,常见的MD5都是32位字符的。
16位版本
在32个字符版本上,去掉前8个字符、去掉后8个字符,取中间的16个字符,就是16位字符的版本,通过在线生成工具,能验证这一点。
java版md5
注意,生成的字符数,可能小于32位,前边要补零
MessageDigest md5 = MessageDigest.getInstance("md5");
String str = "你好 中国134";
byte[] digest = md5.digest(str.getBytes(StandardCharsets.UTF_8));
String s = new BigInteger(1, digest).toString(16);
//信息摘要是:8b4cf756b8f77ac9fc06258a2b6e93f,长度:31
log.info("信息摘要是:{},长度:{}",s,s.length());
以上是关于MD5 信息摘要算法的主要内容,如果未能解决你的问题,请参考以下文章