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 信息摘要算法的主要内容,如果未能解决你的问题,请参考以下文章

SHA1算法原理

MD5 信息摘要算法

MD5加密算法(信息摘要算法)Base64算法

md5信息摘要算法 基于16位机器运行

MD5算法如何被破解

MD5( 信息摘要算法)的概念原理及python代码的实现