Prestashop 1.7 客户密码加密?

2023-12-07

我为 Prestashop 1.6 制作了一些基于 php 的第三方系统。它可以直接连接 Prestashop 数据库。我已将 Presta 升级到 1.7.5.1 并且可以正常使用。只是它不再登录客户,因为正如我所看到的,密码加密已更改。我在 1.6 中使用 md5(COOKIE_KEY.'password') ,但我看到 1.7 上的密码与 md5 完全不同。你能告诉我加密是如何进行的吗? (如果你用php代码告诉我就更好了)

Prestashop 1.7.5.1

$2年$10$6b460aRLklgWblz75NAMteYXLJwjfV6a/uN8GJKgJgPDBuNhHs.ym

123456


PrestaShop 1.7.x 现在使用bcrypt作为首选哈希方法(但仍支持 md5)。

为了更好地了解 PrestaShop v1.6.x 与 1.7.x 之间检查密码的行为,让我们看一下getByEmail()Customer 类中的方法:

/**
  * Return customer instance from its e-mail (optionally check password).
  *
  * @param string $email e-mail
  * @param string $plaintextPassword Password is also checked if specified
  * @param bool $ignoreGuest
  *
  * @return bool|Customer|CustomerCore Customer instance
 */
 public function getByEmail($email, $plaintextPassword = null, $ignoreGuest = true)

If $plaintextPassword提供通过以下方式检索密码的加密版本:

$this->passwd = $crypto->hash($plaintextPassword);

可以通过执行以下操作来实例化 Hashing 类:

$crypto = ServiceLocator::get('\\PrestaShop\\PrestaShop\\Core\\Crypto\\Hashing');

使用 PrestaShop 1.7 类/方法的示例解决方案:

<?php

namespace PrestaShop\PrestaShop\Core\Crypto;
include('config/config.inc.php');

$plaintextPassword = '123456';
$crypto = new Hashing;
$encryptedPassword = $crypto->hash($plaintextPassword, _COOKIE_KEY_);

echo 'Clear: '.$plaintextPassword.'<br />Encrypted: '.$encryptedPassword;

/* Result (example)
Clear: 123456
Encrypted: $2y$10$6b460aRLklgWblz75NAMteYXLJwjfV6a/uN8GJKgJgPDBuNhHs.ym */

替代解决方案,无需包含任何 PrestaShop 文件/方法:

<?php

$plaintextPassword = '123456';
$encryptedPassword = password_hash($plaintextPassword, PASSWORD_BCRYPT);
echo var_dump(password_verify($plaintextPassword, $encryptedPassword)); // True if encryption is matching

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Prestashop 1.7 客户密码加密? 的相关文章

  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • 发送变量后的 wsdl 服务响应,php

    我是 SOAP WSDL 函数的新手 我有一位客户从一家从事汽车测试的公司获得了 wsdl 文件 我的客户是他们的分包商 他们告诉我们上传有关车牌 类别等信息 一旦详细信息发送完毕 服务器就会做出成功或失败的响应 请您协助 浏览不同的信息
  • PHP:将多字节字符串(单词)拆分为单独的字符

    尝试使用 mb split 将这个字符串 主楼怎么走 分割成单独的字符 我需要一个数组 但没有成功 有什么建议吗 谢谢你 例如 尝试使用带有 u 选项的正则表达式 chars preg split u string 1 PREG SPLIT
  • 在laravel中组合两个不同的无关系数据库表查询进行分页

    我的数据库中有两个不相关的表 我需要将它们合并 以便我可以将其放在我的搜索视图中 但我不知道是否可能 这是我的代码 这news and season表不相关 但它们具有相似的列 我试图将其放入一个对象中以便于分页 是否可以 search r
  • 收到警告“标头不能包含多个标头,检测到新行”

    我正在用 oops 进行编码 以便用 PHP 上传图像 但是提交图片后却出现警告 标题不能包含多个标题 检测到新行 下面是我的函数 它给出了错误 public function ft redirect query if REQUEST UR
  • 无法在jspdf中加载多个图像

    我正在尝试加载动态生成的多个图像 我想将这些图像转换为 PDF 格式 HTML 代码如下
  • 这个巨大的正则表达式是如何工作的?

    我最近在我的一个目录中的一个名为的文件中找到了下面的代码doc php 文件功能或链接到文件管理器 做得非常好 基本上 它列出了当前目录中的所有文件 并且允许您更改目录 它可以访问我的所有文件 添加 重命名 信息 删除 我不记得安装过它 我
  • 在 Laravel 中的编辑表单上获取选定选项

    我的网站订单有一个可编辑的表单 并且有以下字段 User quantity note status 我在此表单中还有其他选项 但只有这些字段对我来说很重要 以便能够获取默认值 例如 我希望能够查看用户默认订购的数量 然后我可以更改它或保留它
  • 将查询字符串附加到任何形式的 URL

    我要求用户在文本框中输入 URL 并需要向其附加查询字符串 URL 的可能值如下 http www example com http www example com http www example com a http www examp
  • 如何从脚本中创建新的 Joomla 用户帐户?

    我们正在为 Joomla 创建一个 XML API 允许合作伙伴网站在我们的网站上为其用户创建新帐户 我们已经创建了一个独立的 PHP 脚本来处理和验证 API 请求 但现在我们需要实际创建新帐户 我们最初只想进行 CURL 调用来提交注册
  • Cakedc.users => 总是重定向到主页

    我在新的 Cakephp 安装上使用插件 CakeDC Users 我有两个控制器 PagesController php CardsController php Pages 有 1 个操作 Beta 它是主页 Cards 有两个操作 索引
  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • 合并 2 个数组并合并数字键的结果

    我有 2 个数组 我希望通过每个数字键将其中合并 分组在一起 例如 Array1 2009 gt 131 2008 gt 940 2007 gt 176 2006 gt 1 Array2 2008 gt 9 2007 gt 3 我希望输出是
  • 扩展构建器中的“映射到现有表”显示 TYPO3 中的奇怪问题

    在我的扩展中MyExt 我映射了模型Page to pagesTYPO3 中的表 首先它向我展示了type mismatch错误 无论如何我继续保存它 会发生以下情况 我的页面树变成这样 我的新记录表单仅显示 UID 而不显示标题 My P
  • 设置大型电子邮件通知系统有哪些方法?

    我的公司有一个用 PHP 构建的网站 我们使用内置的 PHP 电子邮件功能每天向订阅者发送数千封电子邮件 这是一个糟糕的主意 它堵塞了我们的服务器 并且需要几个小时才能完成整个批次 现在我已经研究过像 MailChimp 这样的群发邮件服务
  • 使用 PHP 中的 GD 库在图像上绘图

    我创建了一个代码来生成随机图案图像 它创建一个具有给定宽度和高度的图像 并用 40x40 像素的小矩形填充它 这是我的代码
  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子
  • PHP条件,如果当前页面,则链接突出显示[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个带
  • 我可以让 swagger-php 在查询字符串上使用数组吗?

    我使用 Swagger php 当我定义查询字符串上的参数时 它可以是一个数组 但据我所知 它不支持这种查询字符串 https api domain tld v1 objects q 1 q 5 q 12 我相信这会被设定in the co

随机推荐

  • 通过调用方法将字符串传递给属性参数

    我正在尝试使用 NUnit 并将字符串参数传递给 TestCase 属性 但我得到 属性参数必须是属性参数类型的常量表达式 typeof 表达式或数组创建表达式 这是一个简化版本 但 MyStatic 是一个返回构建的 RegEx 字符串的
  • 在 Hyperledger 结构中动态添加组织或组织中的对等方

    我在用http hyperledger fabric doc readthedocs io en latest getting started html用于 Ubuntu VM 中的 Hyperledger Fabric 设置 根据教程 f
  • 在 Postgres 中将表从一个数据库复制到另一个数据库

    我正在尝试将整个表从一个数据库复制到 Postgres 中的另一个数据库 有什么建议么 提取表并将其直接通过管道传输到目标数据库 pg dump t table to copy source db psql target db Note 如
  • 在 CRM 2011 中禁用系统功能区

    我想使用 javascript 有条件地禁用 CRM 2011 表单中的系统功能区 AddNew 这意味着如果 statusCode 是 X 或 Y 禁用功能区 我该怎么做 我尝试获取功能区的 ID 以便将功能区的类名更改为禁用 但我得到
  • 使用局部变量提升精神

    我想根据先前解析的值定义一个规则 即 e 输入字符串具有以下结构 D
  • 使用 google picker 打开特定的 MimeType

    我正在使用实时 API 并且正在使用 realtime client utils 使用现有代码 我使用此方法创建实时文件 createRealtimeFile function title callback gapi client load
  • .apply(Math, arrayName) 在 JS 中如何工作?

    有more than one关于如何在 javascript 中查找值数组的最小值或最大值的 stackoverflow 问题 这不是那个问题 我想知道为什么路过 apply 奇怪的事情this论证仍然有效 尽管一篇好博文从 Aaron C
  • 使用 Maven 管理 DLL 依赖项

    我有一个 Java 程序 使用 Maven 管理其依赖项 其中一个依赖项是另一个程序的 JNI 包装器 Maven 负责对相关 JAR 文件的引用 但我自己却在处理 DLL 文件 有没有好的方法让 Maven 也处理 DLL 理想情况下 我
  • 如何清除所有用户的会话?

    我在我的项目中使用 php 会话 我更新了代码 向会话添加了一些值 现在我需要清除所有现有会话 ps 我的操作系统是ubuntu 9 04 默认情况下 PHP 会话信息存储在 tmp 下的文件中 文件名通常以 sess 为前缀 因此删除这些
  • lxml classic:获取除嵌套标签之外的文本内容?

    这一定是绝对的经典 但我在这里找不到答案 我正在使用 lxml cssselect 解析以下标签 li a href stations 1 span class num 3 span Detroit a li 我想获取的内容 li tag
  • 如何在python中搜索文件夹名称并将其删除

    我有一个文件夹和子文件夹的目录 我需要搜索它以找到某个文件夹名称 旧数据 以便我可以删除 旧数据 中的文件并删除文件夹本身及其中的文件 但是不是它的父文件夹 有 122 个文件夹可供搜索 其中只有一些文件夹包含名为 旧数据 的子文件夹 如何
  • 找不到 CFBundle CertUIFramework.axbundle 的可执行文件

    刚刚更新到 Xcode 5 这是它在我所有应用程序的记录器上抛出的第一个错误 似乎无法理解为什么会发生这种情况 2013 09 19 10 46 54 341 MyApp 1156 a0b Cannot find executable fo
  • 将我自己的参数发送到事件处理程序?

    我正在专门使用 AssemblyResolve 首先是我的代码 然后我的问题如下 var a AppDomain CurrentDomain a AssemblyResolve new ResolveEventHandler HandleI
  • JQuery具有特定类的多个html表格单元格的总和

    我有一个包含许多行的 HTML 表格 每行都有一个单元格 sum类 我如何计算所有单元格的总和 sum class total sum of td with sum class table tr td Name 1 td td Desc 1
  • 根据背景颜色获取值的总和 - Google 表格

    可以在谷歌表格中根据如下格式对一行数据求和 sumif a1 d1 if background is green 解释 我认为实现你的目标的唯一方法是使用谷歌应用脚 本特别是自定义功能 自定义函数如下totalColor cells col
  • 异步方法正确吗?修磨机警告

    在我的方法中RecalcChartAsync我做了一些时间密集的事情 所以我想我会异步做一些事情 我想启动这两个方法CreateHistogramAsync CalculatePropValuesAsync同时在我的中做一些事情Recalc
  • 如何使用SceneKit编辑器创建AR Portal效果?

    我想创建一个原型像这个 仅使用 Xcode SceneKit 编辑器 我找到了一个answer房间是通过简单的编程方式创建的SCNPlane对象并调整渲染顺序 但是 我想整合一些更详细的内容 例如下载房间的 3D 模型 并使其只能通过门户访
  • 迭代直到达到 int.MaxValue

    作为一个小测试 我想看看在 C 控制台应用程序中计算 int MaxValue 需要多长时间 每隔几个小时我就会检查一下进度 昨晚 当我以为程序将完成执行时 它执行回到 0 我不确定为什么会发生这种情况 我想知道是否有人可以向我解释一下 它
  • 在android中保存来自服务器的图像的最佳方法

    我正在开发一个应用程序并从服务器获取产品图像 目前 我将这些图像转换为字节数组后将其保存到 SQLite 数据库中 并在使用时将它们转换回位图 现在我有以下两个疑问 将图像保存在应用程序中的最佳方法是什么 我们也可以在其中同步它们并在需要时
  • Prestashop 1.7 客户密码加密?

    我为 Prestashop 1 6 制作了一些基于 php 的第三方系统 它可以直接连接 Prestashop 数据库 我已将 Presta 升级到 1 7 5 1 并且可以正常使用 只是它不再登录客户 因为正如我所看到的 密码加密已更改