-1

我正在为一个 web 项目开发一个 php/mysql 登录系统。在浏览了 SO 和网络上的许多文章后,我提出了一个基本框架并开始为它编写一些代码。但是,我在密码加密方面陷入了僵局。

经过一个晚上的阅读,我发现:

  • 我应该使用至少 sha1 或 sha2 的用户密码
  • 我还应该使用随机生成的盐(这是我需要帮助的)并在加密之前将其附加到密码中
  • 散列密码和随机生成的盐应该存储在数据库中,然后查询和组合/加密,然后检查用户散列密码。

我的问题是随机生成盐,

4

2 回答 2

0

我能想到的可能性:

  • 在循环中使用mt_rand()来选择一个 ASCII 代码,使用chr()获取相应的字符并连接到 salt。

    这允许创建任何长度的盐。

  • 定义一个包含可用字符的字符串,在循环中使用mt_rand()从中选择随机位置,使用substr()mb_substr()提取所选位置的字符并连接到 salt。

    这允许创建具有选定字符集和长度的盐。

  • 使用生成随机字符串的内置函数(例如uniqid())并可选地对其进行散列。

    这是快速和简单的。

我通常使用第二个选项。

于 2012-03-15T10:01:41.903 回答
0

唯一的()?

http://sg2.php.net/uniqid

于 2012-03-15T09:50:56.550 回答