SHA512盐PHP

时间:2018-10-14 22:44:36

标签: php

我想使用PHP中的SHA512 + Salt + String生成令牌,就像这样的$qs=$_GET['t']$salt='randomString',并基于这些字符串使用SHA512对它们进行哈希处理,任何人都可以提供帮助吗? / p>

我的帐户受到一些否决问题的阻止,有趣的是,即使我已经接受了答案,我也必须重新编辑它们。我不明白这样做的意义。这个stackoverflow系统。

现在,除了继续编辑我的问题外,我基本上无能为力,并且所有问题都已得到解答。这太荒谬了!!!

1 个答案:

答案 0 :(得分:-1)

您可以使用hash() PHP方法:

<?php
echo hash ( "sha512", $salt . $_GET["t"]);
?>

只是在密码前加上前缀的随机文本,以避免使用“彩虹表”(密码/常见密码的哈希对数据库),因为您有一个盐前缀

您还可以将在数据库中分离出的盐存储起来,或使用分隔符,例如:

<?php
echo $salt . "#" . hash ( "sha512", $salt . $_GET["t"]);
?>

要检查密码,可以使用:

<?php
// $dbhash contains the result of hash with salt separated by "#".
if ( hash ( "sha512", substr ( $dbhash, 0, strpos ( $dbhash, "#")) . $_GET["t"]) == substr ( $dbhash, strpos ( $dbhash, "#") + 1))
{
  echo "Password match!";
} else {
  echo "Invalid password!";
}
?>