CakePHP 3.0 - 更改密码时将数据库密码与旧密码进行比较

2024-01-04

我正在开发 CakePHP 3.0,我想将数据库密码与“更改密码”功能中表单中输入的旧密码进行比较。但我无法这样做,因为密码经过哈希处理,即使我们使用相同的密码,哈希密码每次都不同。

请帮助我。

提前致谢, 近战


我会在您的 UsersTable 的验证器中执行此操作。

src/模型/表/UsersTable.php

$validator
            ->notEmpty('current_password')
                ->add('current_password', 'custom', [
                    'rule' => 

                    function($value, $context) {
                        $query = $this->find()
                                ->where([
                                    'id' => $context['data']['id']
                                ])
                                ->first();

                        $data = $query->toArray();

                        return (new DefaultPasswordHasher)->check($value, $data['password']);
                    },
                    'message' => 'Current password is incorrect!'
                ]);

自定义验证规则 http://book.cakephp.org/3.0/en/core-libraries/validation.html#custom-validation-rules

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

CakePHP 3.0 - 更改密码时将数据库密码与旧密码进行比较 的相关文章

  • md5 哈希冲突。

    如果从 1 数到 X 其中 X 是第一个与前一个数字发生 md5 冲突的数字 那么 X 是哪个数字 我想知道如果我使用 md5 作为序列号 在发生冲突之前我可以期望能够枚举多少个单元 Theoretically you can expect
  • 如何不覆盖 Helm 模板中随机生成的秘密

    我想在 Helm 模板中生成密码 这很容易使用randAlphaNum功能 但是 当版本升级时 密码将会更改 有没有办法检查密码是否先前生成 然后使用现有值 像这样的事情 apiVersion v1 kind Secret metadata
  • Java:BCrypt 的用途很好吗?

    我想知道我当前的 BCrypt 实现是否正确 我知道我没有使用BCrypt checkpw 这可能会导致问题 所以这是我在这里验证的主要原因 Hasher java容器类 abstract public class Hasher publi
  • Google Analytics 和哈希/锚点不起作用

    我希望你可以帮助我 我有一个 Javascript 画廊 每张图片都有一个特定的哈希值 www example com gallery html title 1 我的统计数据位于 Google Analytics 上 但即使我在相应的代码中
  • ASP.NET 成员资格 HashAlgorithmType 默认为 HMACSHA256,那么密码是哈希键控的吗?

    我有一个 ASP NET 4 5 Web 应用程序 它使用SqlMembershipProvider 在开发过程中 有人把passwordFormat Clear 在配置中导致密码以明文形式保存 我想删除它并启用密码散列 但我想确保散列不是
  • 如何使用WAMP登录phpMyAdmin,用户名和密码是什么?

    根 这个词是什么意思php我的管理员 http en wikipedia org wiki PhpMyAdmin 每当我写作时localhost phpmyadmin在地址栏上 我被要求输入用户名和密码 但我不知道它们是什么 我不记得何时何
  • 如何在 Perl 中将多个哈希值合并为一个哈希值?

    在 Perl 中 我如何得到这个 VAR1 999 gt 998 gt 908 906 0 998 907 VAR1 999 gt 991 gt 913 920 918 998 916 919 917 915 912 914 VAR1 99
  • URL 哈希在重定向之间持续存在

    由于某种原因 当发送服务器端重定向 使用 Location 标头 时 非 IE 浏览器似乎会保留 URL 哈希 如果存在 例子 a simple redirect using Response Redirect http www yahoo
  • 当今常用的最强哈希算法是什么?

    我正在构建一个 Web 应用程序 并希望对密码使用最强的哈希算法 sha512 whirlpool ripemd160 和 Tiger192 4 之间有什么区别 如果有 哪一个在密码学上被认为更强 bCrypt 为什么会是一个很长的解释 我
  • 将 bcrypt 密码哈希从 PHP 迁移到 Python - ValueError:无效的 hashed_pa​​ssword salt

    我有一个 PHP7 应用程序 它可以像这样对用户密码进行哈希处理 hash password hash password PASSWORD BCRYPT 例如 如果我通过test1234为此 我有 2y 10 aazE9OUKZlOQiM6
  • yesod——密码保护临时站点

    我正在尝试设置 yesod 网络服务器的临时实例 我想知道是否有一些简单的方法可以使整个站点受到密码保护 具体来说 我希望能够提示那些导航到我的网站的人提供凭据 经过身份验证后 它应该像典型站点一样运行 但如果他们无法验证自己的身份 他们就
  • 如何对JConsole的密码文件的密码进行加密

    我正在使用 JConsole 访问我的应用程序 MBean 并使用 password properties 文件 但根据 Sun 的规范 该文件仅包含明文格式的密码 com sun management jmxremote password
  • 散列 hash_hmac 时,Convert.ToChar(0) 散列结果与 PHP 中的 chr(0) 不同的字符串

    我在 PHP 中有一个字符串 它被转换为字节数组并进行哈希处理 转换为字节数组的字符串如下所示 G 字符 0 便便 我需要 C 中的等效字节数组 这样我才能得到相同的哈希值 编辑 这是完整的问题 生成的哈希值不同 PHP api secre
  • 保序最小完美哈希函数

    我想用 C 为字典中的单词实现 OPMPH 函数 我该怎么做 Thanks 你看过这些论文吗 http dx doi org 10 1016 0020 0190 92 90220 P http dx doi org 10 1016 0020
  • 如何高效识别字符串命令?

    给定一系列命令和必须为每个命令运行的非常独特的代码 if cmd cmd setBoosterRocket else if cmd cmd windSales else if cmd cmd selfDustruct else if cmd
  • 最好的通用摘要函数?

    在 2009 年编写一个普通的新应用程序时 就安全性和性能而言 最合理的摘要函数是什么 随着情况的变化 我如何在未来确定这一点 When similar https stackoverflow com questions 116684 wh
  • 在本地安全存储用于 Web 服务的密码

    我有一个应用程序 通过发送用户名和密码来对第三方 Web 服务进行身份验证 目前 我每次启动应用程序时都会在 winform 上输入密码 但我需要它自动登录 我想比更安全地存储用户名 密码 Dim username as String us
  • 如何为 bcrypt.hashpw 设置盐?

    salt yhnqazolr123098765 password bcrypt hashpw password salt repeatpassword bcrypt hashpw repeatpassword salt 我在第二行遇到错误
  • 在 Haskell 命令行应用程序中提示输入密码

    以下 Haskell 程序提示用户在终端中输入密码 如果输入正确则继续 main do putStrLn Password password lt getLine case hash password member database of
  • 在 C# 中使用 SHA1 算法进行哈希处理

    我想哈希给定byte 数组与使用SHA1算法与使用SHA1Managed The byte 哈希值将来自单元测试 预期的哈希值是0d71ee4472658cd5874c5578410a9d8611fc9aef 区分大小写 我怎样才能实现这个

随机推荐

  • 如何通过 IntelliJ 运行/调试配置运行 wdio?

    我可以使用命令行运行测试 gt node modules bin wdio wdio conf js 但是 如果我尝试从 IntelliJ 的运行 调试配置运行它 我会收到各种不同的错误 功能文件或目录 path to my feature
  • WebView setDefaultZoom 已弃用

    这是设置webview默认缩放的代码 mWebView getSettings setDefaultZoom WebSettings ZoomDensity FAR 工作但老了 这setDefaultZoomvalue 已弃用 有人知道新代
  • 从另一个活动更改一个活动的背景

    示例 我有 3 个活动 活动 1 活动 2 和活动 3 Activity1 包含一个按钮 单击该按钮可以更改 Activity2 和 Activity3 的背景 这可能吗 如果是的话怎么办 我对使用该方法有一个想法 example for
  • 如果 rxjs 仍在加载数据,如何返回数据或等待

    我有一个服务 它使用 Observable 在其构造函数中加载一些数据 然后在稍后的某个时间可以使用 getter 检索数据 如果数据存在 它应该立即返回数据 或者等待加载完成 如果仍在进行中 我想出了以下示例 代码在 Typescript
  • R Shiny 应用程序中的“下一步”按钮

    我正在尝试使用 Shiny 构建一个逐步的应用程序 我的目标是创建一个由数据库中编写的一堆问题组成的考试 我需要的是一个 下一步 按钮 当您单击另一个问题时会显示该按钮 我一直在尝试使用 操作按钮 但它只是第一次起作用 也就是说 第一次单击
  • 从 C++11 中的 std::exception 派生时的异常规范

    我有一个异常类如下 include
  • Gridster 的替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我已经用过Gridster http gridster net 使用拖放多列网格的项目的库 遗憾的是
  • Angular HttpPromise:“success”/“error”方法和“then”参数之间的区别

    根据AngularJS 文档 http docs angularjs org api ng 24http 调用 http返回以下内容 返回一个promise符合标准的对象then方法和两个http具体方法 success and error
  • 如何自定义条形注释以不显示所选值

    我有以下数据集 data 6 92 1 78 0 0 0 0 3 5 8 82 3 06 0 0 0 0 5 54 10 8 6 03 0 0 0 0 6 8 13 69 8 61 9 98 0 0 9 42 4 91 3 54 2 62
  • Rails 生成迁移未将 :null => false 设置为created_at 和updated_at

    我创建了一个全新的 Rails 应用程序 生成一些脚手架和一些模型 经过几次测试后 我意识到 t timestamps 生成的列不包含 传统 null gt false 选项 我需要这种行为 我看不出这是做什么的 我重新创建了一个新应用程序
  • 自定义列的 ExecuteStoreQuery

    我正在尝试运行自定义查询并且正在使用实体框架 我尝试了这个 string query SELECT dm DistrictName sm SchoolName u UserId u FirstName u LastName sa Stude
  • 用于识别 2D 特征的图像处理

    我创建了一个 iPhone 应用程序 它可以扫描一张方格纸的图像 然后告诉我哪些方块已被涂黑 哪些方块是空白的 我通过从左到右扫描并使用方格纸的线条作为指导来完成此操作 当我遇到方格纸线时 我开始寻找黑色 直到再次碰到方格纸线 然后 我不再
  • 随机数生成器的实现[重复]

    这个问题在这里已经有答案了 可能的重复 随机数生成器如何工作 https stackoverflow com questions 1716308 how does a random number generator work 我正在寻找 C
  • NodeJS:与 PHP 集成

    我听说 Node JS 非常适合制作实时聊天应用程序 我想在我的网站上实现聊天 现在我只有设计 所以我现在必须编写后端代码 但是当我使用时socket io express它并没有像它应该的那样工作 代码来自server js var ap
  • 通过 http 加载数据之前 angular2 kendo ui 网格的 busyindicator

    我正在使用 angular2 kendo ui 网格并通过 http 调用将数据绑定到网格 在http调用返回数据之前 我需要显示忙碌指示器 而不显示网格标题 直到分配数据 如何实现此目的 谢谢 拉古斯 我通过在 HTML 模板中声明以下内
  • 创建静态资源字典

    我创建了一个资源字典 希望将其与多个用户控件 xaml 文件合并 我只想创建此资源字典的一个实例 知道如何做到这一点吗 注意 合并应该仅通过 xaml 进行 而不是通过代码进行 感谢和问候 维沙尔 这个怎么样 class Dictionar
  • 在 JavaFX 的 FXML 文件中指定 ResourceBundle

    可以设置一个ResourceBundle在 Java 类中使用下面的代码 FXMLLoader loader new FXMLLoader getClass getResource my view fxml loader setResour
  • 如何刷新我的gridView?

    我有一个ListView 当我单击列表视图行的按钮时 将在列表中创建一个按钮main xml 我有onclicklistener自定义 listView 适配器中的按钮 我正在 sqlite 中保存该按钮的点击 并通过该 sqlite 我正
  • Java中两个字符串的交集

    需要一个 Java 函数来查找两个字符串的交集 即字符串共有的字符 例子 String s1 new String Sychelless String s2 new String Sydney Using HashSet
  • CakePHP 3.0 - 更改密码时将数据库密码与旧密码进行比较

    我正在开发 CakePHP 3 0 我想将数据库密码与 更改密码 功能中表单中输入的旧密码进行比较 但我无法这样做 因为密码经过哈希处理 即使我们使用相同的密码 哈希密码每次都不同 请帮助我 提前致谢 近战 我会在您的 UsersTable