目前我正在重建现有网站,旧网站是用CakePHP编写的,但新网站是在Laravel。
旧用户必须能够使用与旧网站上使用的密码相同的密码登录,但这些密码在CakePHP中进行了哈希处理。
我的问题是:
是否有一种方法可以让我使用CakePHP方式 在Laravel中密码破解?
我曾尝试寻找能够实现这一目标的软件包,但无济于事。
答案 0 :(得分:6)
我从Drupal网站迁移时遇到了类似的问题。所以它应该适用于此,我将从现在开始使用CakePHP而不是Drupal。我不知道您是否使用Sentry这样的软件包来处理用户帐户,或者是否是自己开发的软件。
我最终做的是在我的users表中添加第二个密码字段(cakephp_password
),其中包含导入的散列密码。
然后在登录过程中,我检查了cakephp_password
字段是否为空。如果是,我通过我添加到处理登录的类的CakePHP hash function传递了用户输入的密码。然后我将CakePHP函数的哈希与cakephp_password
中的哈希进行了比较。如果哈希匹配,我通过我的laravel用户管理类(在我的情况下为Sentry)的哈希函数传递用户密码,并将计算的哈希添加到用户的password
字段并删除{{1中的哈希值}} field。
现在我可以像任何用户一样正常调用登录过程。