【发布时间】:2016-02-05 16:11:29
【问题描述】:
我有两个应用程序,一个在 Laravel 5.2 中,一个在 Meteor 中。我想收集与两个平台兼容的密码的哈希值。
数据库单独存储哈希
-
passwordLaravel。 -
meteor_password代表 Meteor。
默认情况下,两个平台都使用 10 轮的 bcrypt,但 Meteor 似乎在 bcrypt 之前 sha256 明文密码。
如果 Meteor 创建密码哈希 abc,我可以 sha256 明文密码,并使用 Laravel 的内部结构将其与 abc 进行比较,即 Auth::attempt()
$sha256 = hash('sha256', $request->get('password'), false);
这行得通。 Laravel 成功验证了用户。
但是,如果我在 Laravel 中注册了一个新用户,并存储了哈希 meteor_password,当在 Meteor 中针对该哈希进行身份验证时,它会失败并显示错误消息“禁止登录”。 This error appears to be mean incorrect credentials.
我创建哈希的方式与我在 Laravel 中验证时的方式相同。
$meteor_password = bcrypt(hash('sha256', $plain, false));
它以一种方式而不是另一种方式工作似乎很奇怪,所以我认为我错过了一些东西。
【问题讨论】:
标签: laravel meteor hash bcrypt