PHP SHA3功能

Vet*_*ack 13 php hash sha-3

是否有允许我使用SHA3-512的框架或功能?我不想像Strawbrary这样的扩展

小智 13

这是可能的.

也许为时已晚,但我已经在这里pure-PHP实施一个实现:

  • SHA3​​-224/256 /五百一十二分之三百八十四
  • SHAKE128/256(任意输出大小)
  • LGPL 3+
  • 适用PHP 5.2+(老年人相当慢PHP)
  • 无需扩展.
  • 经过适当的测试.
  • 基于(公共领域)参考实现C.
  • 任意输入大小.

这是一个简单而快速的实现PHP(这意味着远远慢于C).由于这纯粹是"CPU限制",PHP 7.0运行速度比PHP 5.6.(这里55kB/s)

精细的输入.正确处理巨大的输入,只需CPU几分钟的猪.

我希望它有所帮助.

  • 我认为出于安全原因,您应该注意自己实现这一点。正确实现散列算法与设计算法一样重要。还要考虑参考实现不一定安全:他们通常不考虑时序攻击。无论如何,PHP 不是实现这些加密原语的语言。 (3认同)

Moh*_*oli 7

是的,请确保您可以在PHP中使用哈希函数

<?php
echo hash('sha3-512' , 'String you want to hash');
Run Code Online (Sandbox Code Playgroud)

  • @Brad在php7.2上运行`hash_algos()`表明它'sha3-384'确实存在 (3认同)
  • sha3-512在PHP 7.1.0+中可用 (3认同)

man*_*nno 5

对于那些稍后(在这篇文章之后)进行讨论的人,PHP 7.1.0 支持 SHA3-512。

根据 PHP 手册 ( http://php.net/manual/en/function.hash-algos.php ) hash_algos()函数将输出系统可用的哈希算法。以下代码将输出系统可用的哈希算法:

<?php
    echo "<pre>";
    print_r (hash_algos());
    echo "</pre>";
?>
Run Code Online (Sandbox Code Playgroud)

我的输出看起来像这样:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    ...
)
Run Code Online (Sandbox Code Playgroud)

  • 请不要发布链接作为答案,而是解释链接的内容。如果页面被移动并且有人正在寻找帮助怎么办? (3认同)