哈希函数在 ColdFusion MX7 和 PHP 5.x 上的工作方式相同吗?

2023-12-04

我正在处理旧版 ColdFusion MX7 站点。他们想要实现一个“加盐哈希”密码系统。但在明年左右的某个时候,他们计划建立一个全新的 PHP 网站,并且不想重置(丢失)所有密码。

所以我正在寻找一些可以在两个平台上运行的代码。

我对此很陌生,但据我所知,以下两个代码块应该做同样的事情。然而,它们产生不同的结果。有人愿意帮忙吗?

冷聚变代码:

    <cffunction name="computeHash" access="public" returntype="String">
        <cfargument name="password" type="string" />
        <cfargument name="salt" type="string" />
        <cfargument name="iterations" type="numeric" required="false" default="1024" />
        <cfargument name="algorithm" type="string" required="false" default="SHA-1" />
        <cfscript>
            var hashed = '';
            hashed = hash( password & salt, arguments.algorithm, 'UTF-8' );
        </cfscript>
        <cfloop from="1" to="#iterations#" index="i">
            <cfscript>
                hashed = hash( hashed & salt, arguments.algorithm, 'UTF-8' );
            </cfscript>
        </cfloop>
    </cffunction>

PHP代码:

    function computeHash($password,$salt)
    {
        $hashed = '';
        $hashed = hash('sha1', $password . $salt);
        for ($i = 1; $i <= 1024; $i++) 
        {
            $hashed = hash('sha1', $hashed . $salt);
        }
        echo $hashed;
    }

更新1:感谢您的回复!使用密码“p@ssW0rd”和盐“JjXSROiYyKkxNzTklaiErQ==”会生成以下结果:

冷聚变:

代码,第 1 部分:

hashed = hash( password & salt, arguments.algorithm, 'UTF-8' );

生成:

A0A8DE3A3B2A8BFD74766EEE126950F4462D3BCB

代码,第 2 部分:

hash( hashed & salt, arguments.algorithm, 'UTF-8' );

生成:

CFF9B75918B75761B5568854782CD709B2941637

PHP:

代码,第 1 部分:

$hashed = hash('sha1', $password . $salt);

生成:

a0a8de3a3b2a8bfd74766eee126950f4462d3bcb

代码,第 2 部分:

hash('sha1', $hashed . $salt);

生成:

e955404423747ec706561fa9a319ddac47194a65

正如您所看到的,第一次,输出匹配。但是当我重新散列时,它们不再匹配。我很困惑。


ColdFusion 生成A0A8DE3A3B2A8BFD74766EEE126950F4462D3BCB

,PHP 生成a0a8de3a3b2a8bfd74766eee126950f4462d3bcb

正如您所看到的,第一次,输出匹配。

这些字符串不相同。你需要把它们都变成同一个盒子 - 我会用strtoupper()关于 PHP 生成的结果。

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

哈希函数在 ColdFusion MX7 和 PHP 5.x 上的工作方式相同吗? 的相关文章

  • WordPress 中的 add_action 函数

    嗯 我正在学习创建一个 WordPress 插件 我下载了一个并阅读了代码 然后我看到了这个 我假设 foo 是它将添加操作的标签 但是 array 到底是做什么的呢 add action foo array foo1 foo2 我在看ht
  • Zend Framework 生成唯一的字符串

    我想生成一个唯一的 4 6 个字符长的字母数字字符串 以便与每个记录 用户 一起保存在数据库中 db 字段具有唯一索引 因此尝试保存预先存在的字符串会生成错误 现在我正在生成一个随机字符串并使用 try catch 因此在添加新记录时如果抛
  • Laravel 从 5.6 升级到 Laravel 6

    我有一个项目https github com javedbaloch4 Laravel Booking https github com javedbaloch4 Laravel Booking发展于Laravel 5 6现在我想将其升级到
  • 如何检查PHP变量是否包含非数字?

    我只是想知道检查 PHP 变量中是否有非数字的方法以及它是否也检测字符之间的空格 需要确保我的表单字段中没有添加任何奇怪的内容 提前致谢 如果您的意思是您只想要一个包含数字的值 那么您可以使用ctype digit http php net
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • Yii 使用 ajax 进行分页

    我需要使用ajax启用分页 我的代码 控制器 更新内容ajax function actionIndex dataProvider new CActiveDataProvider News array pagination gt array
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • 为什么我需要结束 ob_start()?

    php 文档建议我应该用 ob end flush 结束每个 ob start 我在网站的每个页面上使用一个 只是为了允许我在应用程序中的任何位置使用 firephp 日志方法 该应用程序运行良好 但我想知道是否有任何我不知道的东西可能有害
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • 在 PHP 中使用 phpseclib 时出现 RSA 问题

    我正在尝试在 phpseclib 中使用 RSA 实现 我认为在函数中执行一次代码并重新使用该函数会更容易 当我尝试向代码发送短信时 我收到一条错误消息 提示 解密错误 测试还让我意识到每次代码运行时密文都是不同的 所以我显然在那里做错了什
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • PHP preg_filter 返回意外的长值

    尝试在 Woocommerce 中删除标签并过滤值 但无法以正确的格式获取它 有东西有腥味 我正在使用WC gt cart gt get cart subtotal 来检索该值 在此示例中 我的值是 2 429kr 原始返回值是 span
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • PHP HEREDoc (EOF) 语法在 Sublime Text 3 上突出显示与正斜杠的差异

    我不熟悉 Sublime Text 3 如何使用语法突出显示 例如 如果它纯粹依赖于主题 或者它内置于主题运行的标准中 但就我而言 使用 PHP 的 HERE 文档和转发存在一些语法突出显示差异斜线 一旦出现正斜杠 ST3 就会认为以下所有
  • 表单提交后如何保留选择字段中的选定值?

    我有一个用于将票证上传到数据库的主页 我有一个选择字段 我想保留用户在提交表单之前选择的值 但它没有发生 这是我选择字段的代码
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 在perl中更改多维哈希的第一个键

    我在 perl 中有一个多维哈希 我想更改所选值的第一个键 例如 我有哈希 my Hash1 Hash1 1 12 1 Hash1 1 10 1 Hash1 2 31 1 Hash1 3 52 1 Hash1 3 58 1 Hash1 4
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐

  • .bat 用于批量重命名以增加 fname 中的数字

    我有一个很大的 cbr 文件夹 我正在按问题号重命名它们以正确排序 我需要在 ren 行中包含什么 才能让每个文件通过 Windows 命令提示符增加文件名中的数字 我会经常这样做 因此我会将其设为 bat 文件 例如 其中 n 初始数字
  • 无论如何可以从应用程序内设置 settings.bundle 中的值

    有什么方法可以从应用程序内设置 更新 settings bundle 中的值 我很好地将首选项中的值读入 NSUserDefaults 但想知道是否可以从应用程序内设置值 我有一个网络应用程序 我正在为其制作 iPhone 客户端 并考虑将
  • C#:如何翻译 Yield 关键字

    如果没有yield关键词 如果您愿意 可以使用任何示例 我只是想了解幕后发生了什么 Is the yield操作员eagerly or lazily评价 Sample using System using System Collection
  • 熊猫 keep_default_na=False 不起作用

    Issue 我有一个 Excel 文件 xlsx 其中包含一个工作表 其中某些值等于 N A 使用 pandas 将 Excel 工作表读取为 DataFrame 时 N A 值将被解释为 NaN 基于pandas read excel指南
  • Android studio-“SDK 工具目录丢失”

    当我启动 Android Studio 时 它会显示一个标题为 下载组件 的窗口 其中显示 Android SDK安装到 C Users user AppData Local android SDK2 SDK工具目录丢失 我无法修复它 我需
  • 将 TSV 文件导入 hbase 表

    我正在使用带有 hbase 和 hive 的 hortonworks 2 1 我想从 tsv 文件创建一个 hbase 表 文件在这里 id c1 c2 row1 1 22 row2 e1 42 row3 g1 f2 row4 f1 c2
  • 自动拍照 - iPhone

    我正在尝试执行拍照的任务 但由代码触发 而不是依赖于 UIImagePickerController 中的相机按钮的触摸 这可以做到吗 我想拍 10 张照片 每秒 1 张 正如所回答的here 查看苹果的AVCam样本 它展示了如何从相机获
  • 如何从 CSV 中选择哪些列要使用 HighChart 绘制图表?

    我正在尝试从 CSV 文件创建一个图表 其中每个时间值包含多个数据值 我想绘制其中两个数据点的图表 但无法弄清楚如何将 CSV 文件导入到数组中 这是我的 CSV 示例 Year Month Day Hour Time kWh Saving
  • 如何在本机反应中将值显示回父组件中?

    我有一个显示硬币列表的页面 从那里我导航到另一个组件并将硬币名称作为参数传递 从第二页开始 我根据参数中收到的硬币名称过滤了所有订单 在这里 我计算了平均值 如何将其传递回父页面 以便我可以看到每个硬币旁边的订单平均值 屏幕1代码 impo
  • Jenkins 构建在 Crashlytics 任务上失败

    我对 Jenkins 和构建服务器总体来说是新手 我正在 Jenkins 上设置一个 Android 项目 该应用程序使用 Crashlytics 使用 Gradle 我将任务设置为 干净构建 但每当我执行 Crashlytics 任务时
  • Sequelize:多个表的或条件

    我想使用sequelizejs 在多个表上添加 or 条件 我的问题是我不知道如何在多个表上使用 or 运算符 or 和 Sequelize or 假设我想实现以下 sql 查询 select from A as a B as b C as
  • 字符串到字符数组,显示愚蠢的字符

    这是一个非常简单的问题 但我需要另一只眼睛来看看我的代码 String strtr iNo char queryNo strtr toCharArray System out println queryNo this is no 输出是 C
  • 如何停止标签中的视频?

    我的网站上有一个选项卡界面 其中最后一个选项卡上包含图像和 YouTube 视频 一切正常 但每次我切换标签时 视频都不会停止播放 有没有办法来解决这个问题 提前致谢 这就是我得到的 点击这里 DEMO 切换选项卡会暂停所有正在播放的视频
  • IPython 并行引擎的实时输出?

    我正在使用 IPython 运行大量长时间运行的任务并行化功能 如何从 IPython 客户端中的 ipengines 标准输出获取实时输出 例如 我正在跑步dview map async fun lots of args and fun打
  • 我试图从solaris执行java,得到无效参数错误

    我这样发出命令 bash 3 00 app jdk1 6 0 11 bin java version 它给出的错误如下 bash 3 00 app jdk1 6 0 11 bin java 参数无效 无效参数 是当您尝试在 x86 平台上运
  • Linux 内核中的 sys_execve() 系统调用可以同时接收绝对路径或相对路径吗?

    Shall sys execve 在内核级代码中接收绝对或相对路径filename范围 sys execve可以采用绝对路径或相对路径 我们通过以下方式来验证一下 尝试原始系统调用 阅读内核源代码 在内核 QEMU上运行GDB来验证我们的源
  • 需要一个 shell 脚本将逗号分隔符更改为管道分隔符

    我的输入看起来像 130 00 2 200 00 1 230 63 等等 我的问题是如何将逗号分隔符更改为 分隔符而不删除实际输入中的逗号 只是为了澄清此输入位于具有 40 列和 9500 行的 csv 文件中 我希望我的输出看起来像 13
  • 可以从 dotnet core 1 访问嵌套引用

    我使用 dotnet core 为我的 Web 项目创建了业务和数据访问层 我在业务层中添加了数据访问引用 并在 UI Web 项目 层中引用了业务层 我看到 我可以从我的 UI Web 项目访问我的数据访问层 我真的很想知道 它可能会导致
  • 无论如何比较int和drawable?ANDROID

    无论如何可以将 s 与 a 进行比较吗 在此代码中 我将 int 作为答案 如果drawable s然后我想显示一个 Correct 祝酒消息 任何帮助 将不胜感激 btn1 setOnClickListener new OnClickLi
  • 哈希函数在 ColdFusion MX7 和 PHP 5.x 上的工作方式相同吗?

    我正在处理旧版 ColdFusion MX7 站点 他们想要实现一个 加盐哈希 密码系统 但在明年左右的某个时候 他们计划建立一个全新的 PHP 网站 并且不想重置 丢失 所有密码 所以我正在寻找一些可以在两个平台上运行的代码 我对此很陌生