我有两个应用程序,一个在Laravel 5.2中,一个在Meteor中。我想收集与这两个平台兼容的密码。Laravel&Meteor密码哈希
数据库分别
password
存储散列为Laravel。meteor_password
流星。
这两个平台默认都使用bcrypt,默认10轮,但流星似乎在bcrypt之前使用纯密码。
如果流星创建密码哈希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));
这似乎很奇怪,它会工作的一种方式,而不是其他所以我认为我失去了一些东西。
现货,按预期工作。感谢您的链接;有趣的读物。 –
太好了。顺便说一句,“成本”因素是指数,所以10的成本实际上是(2^10 =)1024轮,而不是10 – MasterAM