Laravel使用bcrypt来散列密码.

根据本文,在该过程的某个时刻,Hash::make函数创建并使用22个长度的随机字符串作为盐来生成密码.

对于一个不同的密码,Hash::make确实会返回唯一的散列,这意味着它确实在过程中的某个地方使用了某种盐渍.

但是这些盐没有存储在USERS表中,这是我期望它们的位置.laravel如何知道用于验证密码的适当散列?

Laravel Hash Explained

推荐答案

您链接的文章似乎包含了答案. 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). 因此,您不需要将盐/成本单独存储在 数据库表.

Laravel相关问答推荐

如何将错误从laravel恢复到inertiajs/vue 3应用程序?

我应该如何使用遵循依赖反转原则的工厂方法设计模式

Laravel复选框值更新

Laravel 数据未传递到下拉框

Laravel 5 如何配置 Queue 数据库驱动程序以连接到非默认数据库?

Laravel created_at 返回对象代替数据库中的日期格式?

如何使用 Laravel 查询生成器在 WHERE 条件周围添加括号

如何在 Laravel 中使用内存数据库的完整测试套件之前迁移和 seeder ?

从 Laravel Session 数组中删除项目

如何在 laravel 中使用 str_replace

Laravel Input:all() 忽略禁用的输入

这个上下文的流程应该是怎样的? (根据 Select 的付款方式,将处理付款的代码放在哪里?)

Laravel - 自定义时间戳列名称

Web 服务器如何处理请求?

如何在 Laravel 5.1 中为Electron邮件添加标题

如何使用 Laravel 测试授权重定向?

Mac OS X 需要 Mcrypt PHP 扩展

在 laravel 中安装 vue 3.0

Laravel - 使用 Eloquent 查询构建器在 Select 中添加自定义列

没有Access-Control-Allow-Origin标头 - Laravel