Laravel使用 bcrypt
哈希密码。
根据这篇文章,在这个过程中的某些方面, Hash::make
function创建并使用22长度的随机字符串作为salt来生成密码。
对于单个不同的密码, Hash::make
确实返回了独特的哈希值,暗示它确实在过程中的某处使用了某种盐析。
但是这些盐并没有存储在用户表中,我希望它们存在于用户表中。 laravel如何知道用于验证密码的相应哈希?
Laravel使用 bcrypt
哈希密码。
根据这篇文章,在这个过程中的某些方面, Hash::make
function创建并使用22长度的随机字符串作为salt来生成密码。
对于单个不同的密码, Hash::make
确实返回了独特的哈希值,暗示它确实在过程中的某处使用了某种盐析。
但是这些盐并没有存储在用户表中,我希望它们存在于用户表中。 laravel如何知道用于验证密码的相应哈希?
您链接的文章似乎包含答案。 https://mnshankar.wordpress.com/2014/03/29/laravel-hash-make-explained/
这个的聪明之处在于算法,盐和成本 嵌入到哈希中,因此可以很容易地解析出来 用于重建/验证的个别组件(请参阅 php crypt源代码的相关部分 https://github.com/php/php-src/blob/master/ext/standard/crypt.c#L258)。 因此,您无需单独存储盐/成本 数据库表。