首页 文章

如何在java中计算一个与Laravel兼容的Bcrypt密码

提问于
浏览
0

我有一个内置laravel的系统,我已经创建了一个API . 问题出在身份验证中 .

我有一个Android应用程序,并希望通过以下方式使用laravel系统进行身份验证:

用户在Android应用程序中键入其密码和用户名,密码和用户名通过网络发送到laravel(密码将使用bcrypt进行散列) . 在服务器端,laravel使用收到的用户名获取用户,并将收到的密码与存储在数据库中的密码进行比较 .

Laravel使用bcrypt来散列用户的密码 . 如果我理解bcrypt算法它使用了一些圆形和盐,所以研究laravel的代码我发现它默认使用round = 8但我不知道它使用了什么盐 . 我尝试使用web bcrypt生成器来获取确定的密码,它与laravel的哈希计算不匹配(并存储在数据库中) .

有什么建议吗?

谢谢

1 回答

  • 0

    我需要在这里做一个解决方法,因为当我使用PHP生成时,hash以$ 2y $开头,java以$ 2a $开头 .

    为了解决这个问题,我在密码匹配之前在java中创建了一个正则表达式,将$ 2y $替换为$ 2a $并且适用于我 .

    在PHP中我使用了本机函数:

    $hash = password_hash($pass, PASSWORD_DEFAULT);

    在java中我使用了jbcrypt lib .

相关问题