尝试在php中生成sha3-512哈希

尝试在php中生成sha3-512哈希,php,hash,Php,Hash,欢迎编程技术协会的成员。我来寻求如何使用hash_algos方法生成sha3-512哈希的指导,因为我注意到它可以为PHP7.xx中许多受支持的哈希算法生成哈希。我希望使用hash_算法创建一个简单的脚本,用salt生成一个hash。代码如下: <?php $data = 453570 ; $new_hash = hash_algos(sha-512); $sha = hash($new_hash, $data); echo $sha; //this

欢迎编程技术协会的成员。我来寻求如何使用hash_algos方法生成sha3-512哈希的指导,因为我注意到它可以为PHP7.xx中许多受支持的哈希算法生成哈希。我希望使用hash_算法创建一个简单的脚本,用salt生成一个hash。代码如下:

  <?php 
  $data = 453570 ;

   $new_hash = hash_algos(sha-512);

  $sha = hash($new_hash, $data);

  echo $sha;



  //this will generate hashes and lengths of the hashes

    foreach (hash_algos() as $v) {
    $r = hash($v, $data, false);
    printf("%-12s %3d %s\n<br>", $v, strlen($r), $r);
    }


    ?>

提前感谢,


Batoe

PHP包含用于有限范围散列类型的专用函数,因此

$h = sha1('secret');
将返回SHA1哈希。这类似于

$h = hash('sha1', 'secret');
但是,对于许多新的哈希函数,没有包含显式函数。相反,所有可用的散列函数都被合并到

您可以找出支持哪些散列类型,这将返回可用散列类型的数组。您希望生成一个SHA3-512散列,因此请检查该列表中所需的散列类型。PHP7.1+支持它

验证是否支持哈希类型后,使用
hash()
生成哈希:

$h = hash('sha3-512', 'secret');

hash_algos()
不接受参数,只返回支持的哈希类型数组。选择您想要的并使用
hash()
。我真的不明白你的问题是什么。
SHA-512
无效,
SHA512
仍然是SHA2。使用
SHA3-512
。好的,我遇到的问题是,您可以轻松地使用sha1生成哈希,$access\u hash=sha1($access.$salt);sha3的情况并非如此。我想因为它是一个新的实现,我不能用sha3-512代替sha1。我一直收到一个致命错误“致命错误:未捕获错误:调用未定义的函数sha3_256()”。请告诉我正确的语法。谢谢你看dup了吗?