php - SHA512 盐 PHP
问题描述
我想在 PHP 中使用 SHA512+Salt+String 生成一个令牌,类似于$qs=$_GET['t']
, $salt='randomString'
,并基于这些字符串使用 SHA512 对它们进行哈希处理,有人可以帮忙吗?
我的帐户被一些反对票问题阻止了,有趣的是我必须重新编辑它们,即使我已经有了接受的答案。我不明白这样做有什么意义。我对这个 stackoverflow 系统感到非常沮丧.
现在,我基本上什么都做不了,只能继续编辑我的问题,而且他们都已经得到了回答。这是荒唐的 !!!
解决方案
您可以使用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!";
}
?>
推荐阅读
- arrays - Excel VBA 中的数组。在某些时候,它会放置 NA 而不是 value
- mxgraph - mxgraph 块 mxevent 效果
- python - Python:将带有自定义函数的 .apply() 应用到数据框 - 为什么它不起作用?
- c - 使用 scanf() 读取 c 中未知数量的整数
- python - 将一个 numpy 浮点数组分类为相应的整数索引
- node.js - 通过 Web 服务 API 使用 Mongodb 的 Odoo
- javascript - 为什么我的 javascript reduce 函数被跳过了?
- postgresql - 在 Postgres 中散列文本时字节序列无效
- c# - 有没有将基本身份验证与基于角色的授权一起使用的资源?
- css - 如何使这些卡片的内容在左侧间隔并对齐以使卡片均匀