【发布时间】:2018-05-18 13:40:38
【问题描述】:
我假装产生唯一的随机值。
您好,我一直在检查 password_hash 的功能,我想知道如果您使用相同的参数,是否可以生成相同的结果。
例如:
password_hash('12345678',PASSWORD_BCRYPT, ['cost' => 13]) -> $2y$13$8grJKASTBm87TU56QRGbTe7m4FHqis9xVYxBJ.1YL./EgOvu0TPvG
如果我重复此操作“n”次,是否可以复制相同的结果?或将始终更改值。
如果无法确定它总是不同的,那么这个修改(添加 time())能否解决总是得到不同值的问题?
password_hash('12345678'.time(),PASSWORD_BCRYPT, ['cost' => 13]);
所有这些问题都是为了尝试获得一种简单的方法来获得唯一的“令牌”,而无需使用典型系统(如果该值存在于 bbdd 生成另一个)避免查询太多次。
【问题讨论】:
-
不要在自己的密码中添加自己的盐。你不是密码学专家。
-
所有这些问题都是为了尝试获得一种简单的方法来获得唯一的“令牌”,而无需使用典型系统(如果此值存在于 bbdd 生成另一个)避免查询太多次。因此,如果包含所有这些值的表中已经存在,那么您将如何避免检查我生成的随机值。
-
不要重新发明轮子。您认为使密码哈希独一无二的东西只是一个随机值。您可以直接获取随机值,而无需通过密码散列。另外,还有专门针对这个问题的算法,即UUID。
-
“那么你将如何做到这一点,避免在任何时候检查我生成的随机值是否已经存在于包含所有这些值的表中。” - 如果它绝对,肯定(AK47,不接受替代品)必须是唯一的基本上永远不会)。
标签: php php-password-hash