我有2个数据库表,包含2种不同的用户类型。
用户和玩家。
玩家使用来自游戏插件的用户数据,其中密码是BCrypted。 用户one为空,用于存储Players表中的用户信息。
我正在比较用户名和密码。 问题是从网站的用户输入获取纯文本密码,而从另一个表中密码已经加密,并且Laravel bcrypt与Players表中的加密密码不匹配。
我可以选择比较密码以确认这是尝试登录的用户。
游戏内插件密码:
$2a$10$lpVYpSJ4O6Mt03eItJeipOWR8LGHP8dgk4a09.e6BFKVoYNAgjz86
Laravel纯文本加密:
$2y$10$yZoq3xBsfow49pL6UyGD2.5NKlmHOmfnCFc9JD5ZjDz3pf5K1XMhG
两个密码都是一样的。
答案 0 :(得分:1)
尝试使用Hash :: check()函数来比较普通密码和散列密码。
if (Hash::check('plain-text', $hashedPassword)) {
// The passwords match...
}
答案 1 :(得分:0)
我找到了一个解决方案,通过使用一个帮助我在我的网站上集成插件的库。
最重要的是,我必须在插件的配置文件中做一些小配置。更改加密方法,使其与我的Laravel应用程序(BCrypt)中的加密方法匹配。
后来我发现我不需要解密密码,只是比较哈希值。