password_hash可以使用相同的参数在不同的时间创建相同的哈希吗?

Ric*_*vet 0 php php-password-hash

我致力于产生独特的随机价值.

您好我一直在检查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中生成另一个),避免查询太多次.

dec*_*eze 7

password_hash将添加随机盐值.独特的盐值将导致非常高概率的独特哈希值.随机盐将从系统上可用的最佳随机数生成器中获取,因此它的唯一性非常高.

不,不能保证盐将是唯一的,或者哈希将是唯一的.但是,除非你每秒产生数十亿个哈希值,否则你永远不可能找到重复的东西.

如果您只对一个唯一的令牌感兴趣,只需获取一个随机数而不是滥用密码散列函数,而不是为它们设计的东西.优选random_bytes用于此.

  • 怎么说这个...没有人可以诚实地说,生成两个相同的随机值是不可能的*.***但实际上***使用`random_bytes`完全没问题!**或者正如我上面指出的那样,UUIDs.许多人依赖随机值是唯一的,他们是.你只需要对*概率*的想法感到满意.不,您可能没有这样一个独特的案例,您必须将ID存储在数据库中以*保证*它们是唯一的. (2认同)