如果md5消息已经是正确的长度,填充md5消息的目的是什么?

pcl*_*m12 5 hash md5 padding

我知道在md5中填充的过程,但是在已经正确长度的消息中添加1和几个0的目的是什么?

这是安全还是标记?

Tho*_*nin 7

填充过程不得产生冲突.如果你有一个消息,就被填充到下午,其中有512的长度多现在想象一下,下午的消息M"本身,即已加入,好像他们是消息的一部分填充比特.如果填充只是保持m'不变,如你所说,那么mm'将产生相同的散列值,即使它们是不同的消息.这将是一次碰撞,也被称为"根本不好".

一般来说,填充过程必须能够明确地删除它:您必须能够查看填充的消息,并毫不犹豫地决定哪些位来自消息本身,哪些位被添加为填充.散列函数过程中的任何内容实际上都不会删除填充,但它必须在概念上可行.如果长度倍数为512的消息通过完全不添加任何位来"填充",则在数学上是不可能的.

以上是所有散列函数的通用.MD5和一般系列的一些功能(包括SHA-1,SHA-256 ......),使用Merkle-Damgård构造,还需要在填充中编码输入数据长度(这是实现一些必要条件)安全证明).在MD5中,长度编码为64位数字.对于'1'位,任何消息至少有65个填充位(最多为511).