在 PHP 中计算 SHA1 类似于 C 中的 CC_SHA1_Update
我有一个 C 语言应用程序,它通过互联网将数据传输到 PHP 页面。我的哈希的 C 实现是:
CC_SHA1_CTX ctx;
CC_SHA1_Init(&ctx);
CC_SHA1_Update(&ctx, ciph_right,20);
CC_SHA1_Update(&ctx, _keyRight, 20);
CC_SHA1_Final(digest, &ctx);
其中 ciph_right 和 _keyRight 只是长度为 20 的 2 个字节数组。如何为 PHP 实现类似的实现,以便获得相同的结果?
我在 PHP 中没有 CC_SHA1_Update 函数,我只有 sha1()。不幸的是,我不能 100% 确定 CC_SHA1_Update 的实际作用。我认为它只是将两个字节数组组合在一起+将它们的哈希值组合在一起,但事实似乎并非如此。
有人有什么想法吗?
谢谢!
So I have an application in C that is transmitting data over the internet to a PHP page. The C implementation for my hash is:
CC_SHA1_CTX ctx;
CC_SHA1_Init(&ctx);
CC_SHA1_Update(&ctx, ciph_right,20);
CC_SHA1_Update(&ctx, _keyRight, 20);
CC_SHA1_Final(digest, &ctx);
Where ciph_right and _keyRight are simply 2 byte arrays of length 20. How can I achieve this similar implementation for PHP so I'm getting the same result?
I don't hav the CC_SHA1_Update function in PHP, I simply have sha1(). And unfortunately I'm not 100% certain what CC_SHA1_Update actually does. I thought it simply combined the two byte arrays + took a hash of them together, but this appears to not be the case.
Anyone have any ideas?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
sha1
函数采用完整的字符串并从该完整的字符串派生 SHA1 哈希值。谷歌搜索表明,对
CC_SHA1_Update
的 C 调用只是添加更多要进行哈希处理的数据。因此,您有两个选择。
sha1
即可。。
然后,
$final_hash
应包含fa978155004254c23f9cf42918ad372038afcaf5
,它恰好与字符串“some datasome more data
”具有相同的哈希值。The
sha1
function takes a complete string and derives a SHA1 hash from that complete string.A bit of Googling suggests that the C calls to
CC_SHA1_Update
are just adding more data to be hashed.You therefore have two options.
sha1
on it..
$final_hash
should then containfa978155004254c23f9cf42918ad372038afcaf5
, which happens to be the same hash as the string 'some datasome more data
'.