【发布时间】:2016-10-01 08:33:00
【问题描述】:
我的问题很简单——使用 2 个独立的 SHA1 实现,我是否保证对于相同的输入获得相同的输出,或者在实现中是否有解释空间?
最具体地说,我的 R 摘要 SHA1 实现和我的 PHP Sha1 摘要似乎并没有像我希望的那样结合在一起。是我有错误还是 SHA1 实现只是提供同一消息的不同有效哈希?
在 R 中:
digest_token = "Stackoverflow is Cool"
value = digest(digest_token, "sha1", raw=FALSE)
输出:
[1] 4c 70 99 2f 81 b5 32 0d 77 aa 17 b6 da be 69 92 13 a0 44 9f
在 PHP 中
$digest_token= "Stackoverflow is Cool";
$value = sha1($disgest_token, false);
输出
ef48c200b5d9b844c950f7704e6c03359f8a4e2f
我可能希望这两个产生相同的输出,但事实并非如此。
【问题讨论】:
-
不,一些实现被破坏了。
-
假设一个有效的实现。
-
如果你假设一个有效的实现,那么你的问题没有意义。你刚刚回答了你自己的问题。你问的是编码吗?
-
关于您的编辑:这可能是编码问题。如果 PHP 或 R 的实现被破坏,那就太奇怪了。
-
如果在修复变量错误后运行此代码,我会在 PHP 中得到
fda997e6a74fb411555490995b262310bab74458。也许你应该确保你在这里显示了正确的字符串。
标签: php r encoding cryptography sha1