我在我的代码中调用了哈希函数,如(php version 5.2.14)
$username =hash("sha256",trim($_POST['username']));
$password =hash("sha256",trim($_POST['password']));
但是我得到了错误 在/ var / www / site / 中调用未定义的函数hash() 怎么办?
答案 0 :(得分:4)
这意味着找不到函数hash()
。检查manual我看到了这个:
(PHP 5 >= 5.1.2, PECL hash >= 1.1)
你运行的是什么php版本?尝试:
<? phpinfo() ?>
要检查。如果低于5.1.2,则表示您没有hash()
功能
答案 1 :(得分:2)
'hash()'是在PHP 5.1.2中引入的,所以你可能有一个旧版本。
答案 2 :(得分:2)
检查您的PHP版本,因为哈希函数仅适用于版本PHP 5&gt; = 5.1.2,PECL哈希&gt; = 1.1
答案 3 :(得分:0)
如果你有旧版本,你仍然可以恢复到sha1或sha256功能,如下所示:
$username = sha1(trim($_POST['username']));
$password = sha1(trim($_POST['password']));
OR
$username = sha256(trim($_POST['username']));
$password = sha256(trim($_POST['password']));
然而,这里有两个好的争论:SHA1 vs md5 vs SHA256: which to use for a PHP login?
答案 4 :(得分:0)
如果您的PHP版本&gt; 5.1.2,然后通过在正在使用的php.ini配置文件中取消注释其行并重新启动Web服务器来启用散列扩展