Laravel将用户输入纯文本密码与外部数据库加密密码进行比较

时间:2017-05-11 13:27:44

标签: laravel encryption cryptography compare

我有2个数据库表,包含2种不同的用户类型。

用户和玩家。

玩家使用来自游戏插件的用户数据,其中密码是BCrypted。 用户one为空,用于存储Players表中的用户信息。

我正在比较用户名和密码。 问题是从网站的用户输入获取纯文本密码,而从另一个表中密码已经加密,并且Laravel bcrypt与Players表中的加密密码不匹配。

我可以选择比较密码以确认这是尝试登录的用户。

游戏内插件密码:

$2a$10$lpVYpSJ4O6Mt03eItJeipOWR8LGHP8dgk4a09.e6BFKVoYNAgjz86

Laravel纯文本加密:

$2y$10$yZoq3xBsfow49pL6UyGD2.5NKlmHOmfnCFc9JD5ZjDz3pf5K1XMhG 

两个密码都是一样的。

2 个答案:

答案 0 :(得分:1)

尝试使用Hash :: check()函数来比较普通密码和散列密码。

if (Hash::check('plain-text', $hashedPassword)) {
   // The passwords match...
}

答案 1 :(得分:0)

我找到了一个解决方案,通过使用一个帮助我在我的网站上集成插件的库。

最重要的是,我必须在插件的配置文件中做一些小配置。更改加密方法,使其与我的Laravel应用程序(BCrypt)中的加密方法匹配。

后来我发现我不需要解密密码,只是比较哈希值。