bandw 发表于 2006-01-16 11:34

$x = md5_file(__FILE__);

rardge 发表于 2006-01-16 12:06

原帖由 bandw 于 2006-1-16 11:34 发表
$x = md5_file(__FILE__);
呵呵,这样的话,就和 md5_file(__FILE__) == md5_file(__FILE__) ? .... 一个意思了。
楼主的意思是要把这个字符串写回到文件后再次md5生成目标字符串来比较。
我觉得除非能从md5算法上证明两串不同的字符串通过md5算法能得到同一个目标字符串,否则的话,……但是 md5 会这样么?

crazysoul 发表于 2006-01-16 12:21

原帖由 carset 于 2006-1-16 05:41 发表


请注意看,我写的不是MD5文件本身,而是R_F_URI 和 L_F_URI,应用的时候,MD5的是其他文件,
比如一个压缩包什么的。。这个是PHPMAN里的例子,请自己去参考,我已经给出了URL。。。

狂汗到底,如果你下载个50M的压缩包,还要远程连接两次?还不如直接给个现成的MD5值好了

L0ading 发表于 2006-01-16 13:18

理论上当然是可以的
但是很难找

litie123 发表于 2006-01-16 14:18

xuzuning 发表于 2006-01-16 14:49

原帖由 rardge 于 2006-1-16 12:06 发表

呵呵,这样的话,就和 md5_file(__FILE__) == md5_file(__FILE__) ? .... 一个意思了。
楼主的意思是要把这个字符串写回到文件后再次md5生成目标字符串来比较。
我觉得除非能从md5算法上证明两串不同的字符串 ...
当然会有“碰撞”,你只需搜索一下“破解 md5”就可以看到很多这方面的内容

md5产生16字节的二进制值转换为16进制就是32个字符长
2的128次方虽然很大,但也绝不能包容整个世界。所以出现两个不同的内容具有相同的md5摘要值的可能性总是存在的。当然楼主的要求要更苛刻一些

carset 发表于 2006-01-16 17:47

对啊。就是连接两次。嘎嘎。是举例嘛,可以这样用。而且确实可以的吧。

axgle 发表于 2006-01-22 10:20

原帖由 litie123 于 2006-1-16 14:18 发表
又是一个莫比乌斯环的问题
我也有类似的感觉~~~

bkkkd 发表于 2006-01-22 15:58

不知道md5_file对文件的检查是不是只对文件的内容检查
不对文件的其它属性检查
如果对文件的其它属性检查
那就是解不开了
如果只对文件的内容检查
那就很简单了
现在不能测试今晚回家后再试一下

bkkkd 发表于 2006-01-22 16:26

原来是解不开的
要用哈密值来求哈密值
但哈密值本来就是不可预知的
用一个不可预知的值来就求未知值
永远也求不了
页: 1 [2] 3 4 5
查看完整版本: [加密] 一道最难的PHP题(md5_file)