Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从第二个观点来看,我的散列&;通过postgresql设置salt用户密码?_Php_Postgresql_Passwords_Hash - Fatal编程技术网

Php 从第二个观点来看,我的散列&;通过postgresql设置salt用户密码?

Php 从第二个观点来看,我的散列&;通过postgresql设置salt用户密码?,php,postgresql,passwords,hash,Php,Postgresql,Passwords,Hash,以下是我的计划和目标: 总体目标: 具有一定简单性的安全性&数据库到数据库的可传输性,因为我不是专家,可能会把事情搞砸,我不想让很多用户重置密码 易于擦除用于发布“擦除”测试数据数据库的密码。(例如,我希望能够使用postgresql语句简单地将所有密码重置为简单的密码,以便测试人员可以自己使用这些测试数据) 计划: 散列密码 帐户创建将永久记录创建帐户时使用的原始电子邮件 使用全局salt,例如“90fb16b6901dfceb73781ba4d8585f0503ac9391” 使用特定

以下是我的计划和目标:

总体目标:
  • 具有一定简单性的安全性&数据库到数据库的可传输性,因为我不是专家,可能会把事情搞砸,我不想让很多用户重置密码
  • 易于擦除用于发布“擦除”测试数据数据库的密码。(例如,我希望能够使用postgresql语句简单地将所有密码重置为简单的密码,以便测试人员可以自己使用这些测试数据)
计划: 散列密码 帐户创建将永久记录创建帐户时使用的原始电子邮件

  • 使用全局salt,例如“90fb16b6901dfceb73781ba4d8585f0503ac9391”
  • 使用特定于帐户的salt,即创建帐户时使用的原始电子邮件,例如“我的”。account@example.com“
  • 使用的是用户的密码,例如“password123”(我将在注册表单中警告用户密码不足)
全局salt、特定于帐户的salt和密码的组合是通过postgresql中的某种散列方法进行散列的(还没有在postgresql中找到散列函数的文档,但是如果我能找到它,能够使用sha-2或类似的东西会很好)

散列将保存在数据库中

收回帐户 要更改密码,他们必须通过标准密码重置(重置电子邮件将发送到原始电子邮件以及他们设置的最新帐户电子邮件)

瑕疵?
我是否需要解决这方面的任何缺陷?在postgresql中完全进行散列是否有最佳实践?

我不会让用户的数据成为salt的一部分。例如,如果管理员需要更改用户的电子邮件地址(不知道用户密码的人才能重新生成哈希),该怎么办。使用帐户创建时间戳或存储在记录上的随机值,或者其他一些不可变的用户特定值。

我不会将用户的数据作为salt的一部分。例如,如果管理员需要更改用户的电子邮件地址(不知道用户密码的人才能重新生成哈希),该怎么办。使用帐户创建时间戳或记录中存储的随机值,或其他不可变的用户特定值。

好吧,我计划将帐户首次创建时使用的电子邮件地址永久存储,但允许用户随意添加和更改“活动”帐户电子邮件,因此,管理员可以简单地更改“活动”电子邮件地址,而不修改“原始”电子邮件地址。我可以从原始电子邮件中创建一个随机的、特定于用户的salt作为附加层,我想,谢谢。我想,这还有一个额外的好处,那就是混淆电子邮件。只要它在帐户创建后是不可变的,而且也很难猜测。使用随机值或毫秒精确时间戳可能比仅从用户数据中获取时间戳要安全一些,因为这更难猜测。但是,只要您知道可以始终为给定的明文密码可靠地重新创建哈希,您的目的就可以实现。我计划将首次创建帐户时使用的电子邮件地址永久存储,但允许用户随意添加和更改“活动”帐户电子邮件,因此,管理员可以简单地更改“活动”电子邮件地址,而不修改“原始”电子邮件地址。我可以从原始电子邮件中创建一个随机的、特定于用户的salt作为附加层,我想,谢谢。我想,这还有一个额外的好处,那就是混淆电子邮件。只要它在帐户创建后是不可变的,而且也很难猜测。使用随机值或毫秒精确时间戳可能比仅从用户数据中获取时间戳要安全一些,因为这更难猜测。但是,只要您知道始终可以为给定的明文密码可靠地重新创建哈希,您的目的就可以实现。