有没有办法检索具有特定密码的所有用户

时间:2016-05-31 12:53:49

标签: php laravel hash

我正在使用Laravel's Hashing功能将加密密码存储在表格中。

我知道我可以使用Hash::check函数检查普通密码是否与加密密码匹配,但有没有办法从数据库中检索具有给定密码的所有用户,而不实际获取所有用户然后使用Hash::check函数比较每个人的密码?

修改

用例是我想知道有多少用户使用给定的密码。

2 个答案:

答案 0 :(得分:7)

不是没有提取所有用户并单独检查每个用户。 Laravel的密码哈希使用bcrypt(PHP的本地password_hash / password_verify也是如此),这是专门设计的,以使这种事情很难做到(对于security / protection) - 它每次都使用不同的盐,所以即使密码相同,也没有两个哈希值相同。

答案 1 :(得分:1)

我不知道Laravel的哈希是否有这样的功能,但似乎不太可能,因为根据定义,哈希与普通密码没有1-1关系。

我的意思是,多个密码可以具有相同的散列,如果Laravel Hashing使用salt(可能是因为它是一种基本的安全模式),相同的密码甚至不会为所有用户提供相同的散列。

它不太可能具有这样的功能,但是如果有这样的功能,你可以确定,在它的引擎盖下,它将完全与你所说的相同:循环用户并使用Hash :: check on each。因为哈希是有意设计的,因为这是唯一的方法。