首页 文章

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

提问于
浏览
1

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

用户和玩家 .

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

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

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

游戏内插件密码:

$2a$10$lpVYpSJ4O6Mt03eItJeipOWR8LGHP8dgk4a09.e6BFKVoYNAgjz86

Laravel纯文本加密:

$2y$10$yZoq3xBsfow49pL6UyGD2.5NKlmHOmfnCFc9JD5ZjDz3pf5K1XMhG

两个密码都是一样的 .

2 回答

  • 0

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

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

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

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

    后来我发现我不需要解密密码而只是比较哈希 .

相关问题