2

我在这里有一个小问题,因为我正在创建一个登录和注册系统。我学校的一位开发人员告诉我对安全密码进行加盐。我同意这一点,但他说我需要用时间戳创建盐,但怎么做呢?目前我正在这样做:

$password = hash('sha512', $password . $salt);

和盐就像:

$salt = "xHkosbGhsfT77239GhsvH";

这在我的配置中几乎没有,所以它不好......

有没有人有一些提示?任何想法如何做到这一点,所以如果你们中的任何人与我分享!

谢谢。

4

2 回答 2

0

您可以使用hash_hmac()需要三个参数的函数(参见文档)。我这样使用它:

hash_hmac('sha512', $password . $salt, SITEKEY);

sha512是我首选的哈希函数,它生成 128B 长字符串

$password是用户密码

$salt是为每个用户生成的唯一字符串,并存储在用户的同一行中的数据库中

salt 生成为:(bin2hex(openssl_random_pseudo_bytes($bits))参见文档

SITEKEY是我制作的每个网站的唯一字符串

于 2014-01-20T19:47:57.420 回答
0

最好为每个用户生成一个唯一的盐并将它们保存在您的用户表中。因此,对于密码检查,只需从数据库中获取用户 salt 并使用它。它比使用单盐用于孔数据库要安全得多。

于 2014-01-20T19:27:37.177 回答