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