- 论坛徽章:
- 0
|
原帖由 flw 于 2006-6-13 14:56 发表
如果你学过数学的话,
你就会知道,
解方程
md5(data) = md5(x) data 为常量
也即
md5(x) = str str 为常量
和解方程
md5(data + foo(x)) = x
有多大区别。
我的数学水平不需要楼上来评价,不见得比楼上差.
不偏离问题了,先看楼主的原文:
-----------------
问题是我们现在需要在文件本身里写入这个文件的md5信息,而不是用外部文件来表达,举例来说,有一个文本文件,我们在最后告诉读者这个文件的md5为xxxxxxxxxxxx,而你通过md5sum计算这个文件的时候恰好是文件内容中的md5编码。
还有一例,比如制作了电影文件到后期处理,需要添加字幕显示当前电影文件的md5码以便观众确认这个版本的文件是正版,这个字幕本身包含了md5信息,只是表现方式是图形方式。
-----------------
首先假设已经存在一个寻找MD5冲突的算法: 即,给定初始的MD5 state,通过计算加入一些字节,最终可以得出需要的MD5值.
以第二个问题为例,只需要事先任意选定一个MD5 值,将其做入字幕之中,得到最终可播放的文件,计算当前文件的MD5,得出一个MD5 state, 然后以这个MD5 state为起始,执行上述的冲突寻找算法,在文件后面附加算法得出的填充内容.即得到楼主想要的结果.
当然,这个解法是理论上的,寻找MD5冲突的算法是否能够达到我说的程度也未可见,所以具体实现起来也不见得能成功,还是建议楼主使用其它的方法.
[ 本帖最后由 ppcl 于 2006-6-13 17:16 编辑 ] |
|