PHP中的Echo哈希

时间:2018-03-23 15:22:30

标签: php hash

我有一个非常简单的问题,但看到我是初学者,我似乎无法找到答案。我想将我的哈希打印到一个网站(以确认它被正确地哈希)。但当我回应它时,我什么也得不回来。我期待的是一个哈希字符串。这是代码,请帮助:

  <?php

$index = 1;
$data = rand(1,4);
$myhash = hash($index, $data);

?>

<html>
<body>

<?php
    echo "$index <br>";
    echo "$data <br>";
    echo "$myhash <br>";

?>

</body>
</html>

3 个答案:

答案 0 :(得分:4)

一个好的做法是调试代码。

在页面开头使用它(仅用于开发目的,而不是生产!):

<?php

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


$index = 1;
$data = rand(1,4);
$myhash = hash($index, $data);

?>

<html>
<body>

<?php
    echo "$index <br>";
    echo "$data <br>";
    echo "$myhash <br>";

?>

</body>
</html>

所以你会收到如下错误:

E_WARNING : type 2 -- hash(): Unknown hashing algorithm: 1 -- at line 5

这是因为hash()函数的第一个参数必须是哈希算法的名称,如“md5”,“sha256”,“haval160,4”

因此,在您的情况下,您应该通过以下方式更改$ index:

$index = "sha256";

而不是像你那样的数字。

答案 1 :(得分:2)

hash函数需要将散列算法指定为其第一个参数。您提供的数字1不是有效的算法。

阅读散列函数并选择合适的算法。例如:

$myhash = hash('sha256', $data);

答案 2 :(得分:0)

散列函数需要散列算法作为第一个参数。

string hash(string $algo , string $data [, bool $raw_output = FALSE ])

您没有证明哈希算法。尝试将md5,sha256,haval160等作为哈希算法。 查看php.net了解更多信息。 php.net