为什么我在 Python 中得到 hmac 的错误结果,而在 Perl 中却没有?

2024-03-18

我正在尝试使用 sha-512 计算 hmac。

Perl 代码:

use Digest::SHA qw(hmac_sha512_hex);

$key = "\x0b"x20;
$data = "Hi There";

$hash = hmac_sha512_hex($data, $key);
print "$hash\n";

并给出正确的哈希值

87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cde  
daa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854

Python版本:

import hashlib, hmac

print hmac.new("\x0b"*20, "Hi There", hashlib.sha512).hexdigest()

这给出了错误的哈希值

9656975ee5de55e75f2976ecce9a04501060b9dc22a6eda2eaef638966280182
477fe09f080b2bf564649cad42af8607a2bd8d02979df3a980f15e2326a0a22a

有什么想法为什么Python版本给我错误的哈希值吗?

Edit:
版本是
Python 2.5.1(r251:54863,2009 年 1 月 13 日,10:26:13)
[GCC 4.0.1(Apple Inc. build 5465)] 达尔文


确实是的——看来 Leopard 版本的 python2.5 是被破坏的。

下面在基于 Penryn 的 MBP 上运行...

$ **uname -a**
Darwin lizard-wifi 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386
dpc@lizard-wifi:~$ **which python**
/usr/bin/python

运行 Leopard OS 中安装的此版本

dpc@lizard-wifi:~$ python
Python 2.5.1 (r251:54863, Jan 13 2009, 10:26:13) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib, hmac
>>> print hmac.new("\x0b"*20, "Hi There", hashlib.sha512).hexdigest()
9656975ee5de55e75f2976ecce9a04501060b9dc22a6eda2eaef638966280182477fe09f080b2bf564649cad42af8607a2bd8d02979df3a980f15e2326a0a22a
>>> 

然后是 MacPorts 版本python2.5

$ /opt/local/bin/python2.5
Python 2.5.4 (r254:67916, Feb  3 2009, 21:40:31) 
[GCC 4.0.1 (Apple Inc. build 5488)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib, hmac
>>> print hmac.new("\x0b"*20, "Hi There", hashlib.sha512).hexdigest()
87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854
>>> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我在 Python 中得到 hmac 的错误结果,而在 Perl 中却没有? 的相关文章

  • 如何在Python中循环并存储自变量中的值

    我对 python 很陌生 所以这听起来可能很愚蠢 我进行了搜索 但没有找到解决方案 我在 python 中有一个名为 ExcRng 的函数 我可以对该函数执行什么样的 for 循环 以便将值存储在独立变量中 我不想将它们存储在列表中 而是
  • 从字符串到类型的词法转换

    最近 我尝试用Python存储和读取文件中的信息 遇到了一个小问题 我想从文本文件中读取类型信息 从 string 到 int 或 float 的类型转换非常有效 但从 string 到 type 的类型转换似乎是另一个问题 当然 我尝试了
  • 在python中将文本文件解析为列表

    我对 Python 完全陌生 我正在尝试读取包含单词和数字组合的 txt 文件 我可以很好地读取 txt 文件 但我正在努力将字符串转换为我可以使用的格式 import matplotlib pyplot as plt import num
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • python 中分割字符串以获得一个值?

    需要帮助 假设我在名为 input 的变量中有一个字符串 Sam Person name kind input split 通过执行上述操作 我得到两个具有不同字符串 Sam 和 Person 的变量 有没有办法只获取第一个值 name S
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 如何限制Django CreateView中ForeignKey字段的选择?

    我有一个沿着这些思路的模型结构 models py class Foo models Model class Bar models Model foo models ForeignKey Foo class Baz models Model
  • 导入 .pl 文件

    我想知道如何将 Perl 文件导入到脚本中 我尝试了 use require 和 do 但似乎没有什么对我有用 这就是我用 require 做到的 usr bin perl require equations print x1 n 是否可以
  • 更改 pandas 中多个日期时间列的时区信息

    有没有一种简单的方法可以将数据帧中的所有时间戳列转换为本地 任何时区 不是逐列进行吗 您可以有选择地将转换应用于所有日期时间列 首先 选择它们select dtypes https pandas pydata org pandas docs
  • 为什么我用 beautifulSoup 刮的时候有桌子,但没有 pandas

    尝试抓取条目页面转换为制表符分隔格式 主要拉出序列和 UniProt 登录号 当我跑步时 url www signalpeptide de index php sess m listspdb bacteria s details id 10
  • 将 Pandas 列中的列表拆分为单独的列

    这是我在 pandas 数据框中的 特征 列 Feature Cricket 82379 Kabaddi 255 Reality 4751 Cricket 15640 Wildlife 730 LiveTV 13 Football 4129
  • Django 在选择列表更改时创建毫无意义的迁移

    我正在尝试使用可调用创建一个带有选择字段的模型 以便 Django 在选择列表更改时不会创建迁移 如中所述this https stackoverflow com questions 31788450 stop django from cr
  • Web 开发中的 Perl [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • conda-env list / conda info --envs 如何查找环境?

    我一直在尝试 anaconda miniconda 因为我的用户使用随 miniconda 安装的结构生物学程序 并且作者都没有 A 考虑到可能存在其他 miniconda 应用程序 B 他们的程序将在多用户环境中使用 因此 使用 Arch
  • Pandas Dataframe:将包含列表的行扩展到多行,并为所有列提供所需的索引

    我在 pandas 数据框中有时间序列数据 索引为测量开始时的时间 列中包含以固定采样率记录的值列表 连续索引 列表中元素数量的差异 这是它的样子 Time A B Z 0 1 2 3 4 1 2 3 4 2 5 6 7 8 5 6 7 8
  • 将一个列表的元素除以另一个列表的元素

    我有两个清单 比如说 a 10 20 30 40 50 60 b 30 70 110 正如你所看到的 列表 b 由一个列表的元素总和组成 其中 window 2 b 0 a 0 a 1 10 20 30 etc 如何获得另一个列表 该列表由
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • 导入错误:没有名为 google.auth 的模块

    当我尝试导入时firebase admin in python 2 7我收到错误 导入错误 没有名为 google auth 的模块 这是Docker文件 https github com ammaratef45 Attendance bl

随机推荐

  • 将宽度和高度设置为 React-native 模式

    我无法使用配置模态高度和宽度style财产 还有其他方法可以设置模态高度和宽度吗
  • 如何在 ASP.NET MVC 3 中发布文件数组?

    我希望能够以一种形式发布多个文件 我想将这些文件作为文件数组传递 例如我想这样做
  • 查找与某个模式匹配的所有文件名

    我正在尝试找到一种方法来列出与此模式匹配的文件夹中的所有文件名 20131106XXXXX pdf 前缀是日期 内容和长度XXXX不同文件有所不同 我只关心 pdf 文件 任何人都可以建议一种方法来做到这一点吗 Try this list
  • 厨师兼顾客中途死亡

    最近 我们开始遇到厨师客户在跑步过程中死亡的问题 因为我们在通常进行得更快的跑步列表的各个部分上花费了更多的时间 我使用的是家庭 Wi Fi 而我的同事使用的是工作 Wi Fi 该 Wi Fi 本身也存在一些连接问题 如果在 Chef cl
  • Django Rest Framework - 序列化器中的字段级验证

    我有一个序列化器 我正在尝试添加字段级验证 我需要验证序列化的某些字符字段是否为空 以及布尔字段是 true 还是 false 我有这个序列化器 但即使 Ficha publicada 为 false 我也不会返回错误 class Publ
  • 取消注册已注册的 filewatcher 事件不起作用

    我想用powershell查看一个文件夹 我是PS初学者 当我启动脚本时 该脚本只能运行一次 但是 当我因为更改了一些脚本代码而必须再次重新启动脚本时 我收到此错误消息 Cannot subscribe to the specified e
  • 如何将选择字段的文本转换为图标?

    救救吧 伙计们 我的共享点页面中有一个选择字段 其中的选项如下 1 Go 2 Warning 3 Stop 现在 我希望它以图标而不是文本的形式出现在列表中 我有一个可用的 jquery 脚本 但需要很长时间才能搜索所有列表中包含的文本 而
  • 无法获取当前用户:没有可用的 RequestContext

    使用 xsuaa approuter 登录获取登录的用户对象时出现以下异常 User currentUser UserAccessor getCurrentUser 我要在不使用 GuiceFilter 的情况下获取 currentUser
  • 我可以使用 Python 为所有主流浏览器开发扩展吗?

    我可以用吗Python为所有主流浏览器开发扩展 如果不是 那么我需要了解哪些语言来开发扩展 Chrome Firefox Safari IE Opera 大多数扩展只是捆绑的 HTML CSS JS 和图像文件 以及一些元数据 你需要精通
  • 设计方法:过载与开关?

    关于封装设计的性能和可扩展性 最好是 重载 函数名称 让 Mathematica 根据模式 条件 测试以及系统对定义的排序方式来确定要使用哪个版本 或者使用 Switch 或类似命令 构建单个函数来直接求值 Mathematica 的表达能
  • 使用 Flexbox 垂直居中项目

    我正在尝试使用 CSS 的 flexbox 垂直居中项目 而且 我知道如何使用非供应商前缀的代码来做到这一点 但即使使用供应商前缀 我也无法让它在 Webkit Chrome 中工作 我正在尝试垂直对齐 trigger 中的跨度 这是我的C
  • 更新到 Xcode 10.2 后,构建在 testflight 上黑屏

    我的应用程序完美运行 我已将 Xcode 更新到最新的 10 2 版本 但发生了一些奇怪的事情 与任何更新一样 该应用程序在调试器上运行顺利 完全没有问题 当我将一个版本存档到 testflight 时 该版本显示启动画面 然后进入黑屏 不
  • 如何安装 DB2 ODBC 或 OLEDB 驱动程序

    我已经在 Windows 7 Pro 上安装了 IBM DB2 Database Express 现在 我想创建 C 代码以便在 DB2 表中选择 插入 更新记录 我花了一整天的时间在互联网上搜索有关如何安装 OLEDB 或 ODBC 驱动
  • vue js 2 对表格进行排序

    我有两个关于 vue js 2 的问题和一个小提琴 https jsfiddle net tmun9cxa 1 https jsfiddle net tmun9cxa 1 当您单击列标题时 为什么我的排序不起作用 解决办法是什么 如何让搜索
  • 指定 PHP 代码来选择日期和 3 天前的记录

    我正在尝试从 SQL 表中调用仅 3 天前的数据 我的表中有一个磅日期列 并且是日期格式 我已尝试以下操作 但根本没有从查询中得到任何结果 result mysql query SELECT DATE FORMAT datetime y m
  • Ruby:如何递归查找并删除空目录?

    我正在尝试编写一些 ruby 它会递归地搜索给定目录中的所有空子目录并删除它们 想法 注意 如果可能的话 我想要一个脚本版本 这既是实际需要 也是帮助我学习的东西 In ruby Dir select d File directory d
  • 如果 Ruby 和 Python 都允许猴子修补,为什么 Ruby 中的争议更大?

    在我听说过的许多关于 Ruby 的讨论中 人们都表达了对这种语言的保留意见 猴子补丁问题成为他们最关心的问题之一 然而 我很少听到在 Python 环境中提出相同的论点 尽管它在 Python 语言中也是允许的 为什么会有这样的区别 Pyt
  • 如何从批处理文件执行PowerShell命令?

    我有一个 PowerShell 脚本 用于将网站添加到 Internet Explorer 中的受信任站点 set location HKCU Software Microsoft Windows CurrentVersion Intern
  • 如何声明构造函数?

    当我编译程序时出现以下错误 Microsoft Samples Kinect ControlsBasics SelectionDisplay 不 包含一个带有 2 个参数的构造函数 我可能需要为我创建的新事物声明另一个构造函数 但我不知道该
  • 为什么我在 Python 中得到 hmac 的错误结果,而在 Perl 中却没有?

    我正在尝试使用 sha 512 计算 hmac Perl 代码 use Digest SHA qw hmac sha512 hex key x0b x20 data Hi There hash hmac sha512 hex data ke