php - 我应该如何在 MySQL 中存储我的 sha512 加盐和散列密码?

标签 php mysql security

全部,

我正在使用以下 PHP 函数对 Web 应用的用户密码进行加盐和散列处理:

function stringHashing($password,$salt){
 $hashedString=$password.$salt;
 for ($i=0; $i<50; $i++){
  $hashedString=hash('sha512',$password.$hashedString.$salt);
  }
 return $hashedString;
}  

在 MySQL 中存储结果字符串的最佳方式是什么?我想这是一个固定的 CHAR 字段?我应该如何计算正确的长度?

谢谢,

JDelage

最佳答案

好吧,SHA512 将始终返回一个 512 位哈希值,双参数 hash() 方法将其作为十六进制数字返回,因此每字节 512 位/8 位 * 每个字节 2 个十六进制数字= 128 个十六进制数

CHAR(128) 应该是您所需要的

关于php - 我应该如何在 MySQL 中存储我的 sha512 加盐和散列密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220659/

相关文章:

php - 关键字相关性 PHP MySQL 搜索引擎

mysql - 在此查询中对每个客户计数一次

java - 保护 Jersey 2 Rest API

php - 即使数据库中不存在空值,JSON 响应中也会返回空值

java - 确保休息端点安全的框架/库/模式

php - 如果有人上传 php 文件而不是图像,则会存在安全风险

php - Selenium PHP 获取链接标签的 url

php - Mysql - 统计结果并按降序显示

javascript - 脚本被解释为样式表,但以 MIME 类型 text/html 传输

mysql - 单个数据库查询中的多个 sql 更新