首页 > 解决方案 > SHA512 盐 PHP

问题描述

我想在 PHP 中使用 SHA512+Salt+String 生成一个令牌,类似于$qs=$_GET['t'], $salt='randomString',并基于这些字符串使用 SHA512 对它们进行哈希处理,有人可以帮忙吗?

我的帐户被一些反对票问题阻止了,有趣的是我必须重新编辑它们,即使我已经有了接受的答案。我不明白这样做有什么意义。我对这个 stackoverflow 系统感到非常沮丧.

现在,我基本上什么都做不了,只能继续编辑我的问题,而且他们都已经得到了回答。这是荒唐的 !!!

标签: php

解决方案


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

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

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

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

<?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!";
}
?>

推荐阅读