gpt4 book ai didi

php - 在 PHP 中计算 SHA1 类似于 C 中的 CC_SHA1_Update

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:23 24 4
gpt4 key购买 nike

所以我有一个 C 语言的应用程序,它通过 Internet 将数据传输到 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 实际上做了什么。我认为它只是简单地将两个字节数组组合在一起 + 将它们的哈希值放在一起,但事实并非如此。

有人有什么想法吗?

谢谢!

最佳答案

sha1函数获取一个完整的字符串并从该完整的字符串中导出 SHA1 散列。

谷歌搜索表明 C 调用了 CC_SHA1_Update只是添加更多要散列的数据。

因此您有两个选择。

  1. 只需将所有数据连接在一起,然后调用 sha1在上面。
  2. 使用(标准)hash extension在流媒体模式下:

.

$h = hash_init('sha1');
hash_update($h, 'some data');
hash_update($h, 'some more data');
$final_hash = hash_final($h);

$final_hash然后应该包含 fa978155004254c23f9cf42918ad372038afcaf5 ,恰好与字符串 'some datasome more data 的哈希值相同'.

关于php - 在 PHP 中计算 SHA1 类似于 C 中的 CC_SHA1_Update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com