encryption - 从 Prestashop 1.6 MD5 加密更新到 1.7
问题描述
我正在将我的 PS 1.6 更新到 1.7。我知道 PS 1.6 使用这种加密方法md5(_COOKIE_KEY_.$passwd)
,但我们将其转换为md5($passwd)
以前的版本,以便与我们以前的商店 not-prestashop 兼容。
现在我们要更新到 1.7,我们看到加密方法已更改为 hash()。我们已经实现了登录以前的用户更改此功能:getByEmail()
,但现在我们希望注册正常工作(将密码保存为md5($plaintextpassword)
)。我们知道新的加密方法更加安全,不建议使用md5($plaintextpassword)
,但现在我们无法更改。
我们在 Classes/Customer.php 中更改了所有行:
$this->passwd = $crypto->hash($password);
至:
$this->passwd = md5($password);
但是当我们注册一个新用户时,所有这些变化,它被保存为 hash() 方法,格式为 $2y$10$VPm9ygay2ldd0Vu0J4ttQuOdD/mIytURV/nXCXKs4GcB4AkIWtaQm 而不是:bcef5cffa6f4bb0abb94cf6fa7a7cb2f。我没有找到必须更改的位置才能以所需的格式保存?
解决方案
您必须覆盖 PrestaShop 并添加新的附加密码检查器:
if(!loginWithOriginalMethod($password)) {
loginWithAdditionalMethod($password);
}
通过这种方式,您的新老客户都可以登录您的商店
推荐阅读
- linux - 在 linux 主机上通过 jenkins 运行 powershell 脚本
- android - 如何使用 SingApk.jar 使用系统密钥签署 APK?
- sql-server - SQL Server Container Linux - 用户“sa”登录失败
- php - 翻译网站:缺少路线所需的参数
- javascript - Microsoft Patch 后经典的 asp 网页不再工作
- c - Libzip:如何压缩包含文件的文件夹?
- php - PHP:如何从当前周中提取 6 周?
- javascript - 如何查找 datalist 模板选项 innerHTML 值?
- c++ - 检查数字是否是 C/C++ 中的整数(没有 scanf/gets/etc)
- c++ - 如何使用函数将字符串添加到向量中?