像大多数用户一样,我只是想找出一种安全的方式来存储密码。我在这里没有找到(或者可能是我缺乏理解)是如何在我的数据库中检索加盐散列并将盐与散列密码分开,特别是在将盐+密码保持在一个单列。
我正在从 PHP 手册中找到所有这些很酷的密码加密方法(SHA-256,但 MySQL 是否只支持 SHA/1 和 MD5?)以及其他内容,但不确定如何存储和检索密码。
所以,到目前为止,这就是我所理解的:
SHA('$salt'.'$password') // My query sends the password and salt
// (Should the $salt be a hash itself?)
在那之后,我迷失了盐分。
不加盐检索密码很容易,但盐让我很困惑。我在哪里可以再次从 $salt 获得价值,特别是如果它是唯一且安全的?我是否将它们隐藏在另一个数据库中?恒定(似乎不安全)?
编辑: HMAC 中的关键变量应该是盐还是其他?