我很困惑为什么我在PHP和OpenSSL中看到md5散列的不同结果.
这是我正在运行的代码:
php -r "echo md5('abc');"
Run Code Online (Sandbox Code Playgroud)
结果:900150983cd24fb0d6963f7d28e17f72
这个:
echo abc | openssl md5
Run Code Online (Sandbox Code Playgroud)
结果:0bee89b07a248e27c83fc3d5951213c1
为什么?
我很困惑为什么以下返回单独的sHA1s
$ perl -MDigest::SHA1 -E'say Digest::SHA1::sha1_hex("http://i.aultec.com/v/8066/Originals/1FTVX12585NA9832010.jpg");'
e1133fa3b7ea0bfb8ffa4d877932ed6c6fa10cef
$ echo "http://i.aultec.com/v/8066/Originals/1FTVX12585NA9832010.jpg" | sha1sum
5c3731e83ae0184ed93b595b9f5604863dd331e6 -
Run Code Online (Sandbox Code Playgroud)
哪一个是对的?我/我/做错了吗?
$ perl -MDigest::SHA -E'say Digest::SHA::sha1_hex("http://i.aultec.com/v/8066/Originals/1FTVX12585NA9832010.jpg");'
e1133fa3b7ea0bfb8ffa4d877932ed6c6fa10cef
Run Code Online (Sandbox Code Playgroud)
你可以看到摘要是正确的继承者(Digest::SHA)
好吧,我有两个文件.他们是完全相同的.
第一个文件是:
http://iadsonline.com/servconfig.php
第二个文件是:
http://xzerox.info/servconfig.php
但是,当我使用md5_file()来获取他们的MD5时,他们会返回两个不同的MD5.
第一个返回cc7819055cde3194bb3b136bad5cf58d,这是不正确的,第二个返回96a0cec80eb773687ca28840ecc67ca1,这是正确的.
该文件只是一个
为了验证,我使用了这段代码:
$contents = file_get_contents($URL);
echo htmlentities($contents);
Run Code Online (Sandbox Code Playgroud)
他们都回来了
那么为什么它们以不同的方式散列呢?