生成HMAC SHA256签名Python

2024-02-05

尝试为 3Commas 生成 HMAC SHA256 签名,我使用与官方示例 https://github.com/3commas-io/3commas-official-api-docs/blob/master/rest-api.md#example-1-as-a-query-string,它应该生成: “30f678a157230290e00475cfffccbc92ae3659d94c145a2c0e9d0fa28f41c11a”

但我生成: “17a656c7df48fa2db615bfc719627fc94e59265e6af18cc7714694ea5b58a11a”

这是我尝试过的:

secretkey = 'NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j'
totalParams = '/public/api/ver1/accounts/new?type=binance&name=binance_account&api_key=XXXXXX&secret=YYYYYY'
print 'signature = '+hashlib.sha256((secretkey+totalParams).encode('ASCII')).hexdigest()

谁能帮我吗?


尝试使用hmac https://docs.python.org/3/library/hmac.html#hmac.new模块而不是hashlib module:

import hmac
import hashlib


secret_key = b"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
total_params = b"/public/api/ver1/accounts/new?type=binance&name=binance_account&api_key=XXXXXX&secret=YYYYYY"
signature = hmac.new(secret_key, total_params, hashlib.sha256).hexdigest()
print("signature = {0}".format(signature))

这给出了期望的结果:

signature = 30f678a157230290e00475cfffccbc92ae3659d94c145a2c0e9d0fa28f41c11a

Edit

请注意,hmac模块接受密钥和消息的字节。如果您的输入是字符串,则可以使用str.encode() https://docs.python.org/3/library/stdtypes.html#str.encode具有相关字符集的方法,例如'ascii', 'utf-8' (默认),etc. https://docs.python.org/3/library/codecs.html#standard-encodings

在上面的代码示例中我使用的是字节文字 https://docs.python.org/3/library/stdtypes.html#bytes-objects引入于PEP-3112 https://peps.python.org/pep-3112/。字节文字只能包含 ASCII 字符,任何超出 ASCII 范围的字符都必须作为相关转义序列输入。

例如:

emoji = b'\xf0\x9f\x98\x84'
print(emoji.decode('utf-8'))

因此,上面代码示例中的以下行...

secret_key = b"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"

...相当于:

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

生成HMAC SHA256签名Python 的相关文章

随机推荐

  • 长时间运行任务的视觉反馈

    我有一个长时间运行的 for each 循环 并且想知道是否有一种惯用的方法来添加一些视觉用户反馈 以便用户不会认为应用程序崩溃了 private void btnRunLongRunningTask Click object sender
  • Hazelcast Jet 查询

    我对 Hazelcast Jet 有以下疑问 用例如下 有一个应用程序 应用程序 A 部署在集群中 使用 Hazelcast IMDG 并将数百万条记录 事务放入 hazelcast IMap 中 已为此 IMap 配置事件日志 还有另一个
  • 如何获取 SwiftUI 中 TextEditor 的光标位置?

    因此 在我的文本编辑器中 我想知道光标的几何位置 我还计划在该位置之后附加一些文本 那么我该怎么做呢 好吧 所以我想出了一个方法来做到这一点 首先 我创建了一个struct存储光标位置 import foundation struct Cu
  • Docker - Node.js + MongoDB - “错误:无法连接到 [localhost:27017]”

    我正在尝试为我的容器创建一个容器Node应用程序 这个应用程序使用MongoDB以确保一些数据的持久性 所以我创建了这个Dockerfile FROM ubuntu latest Installing MongoDB Add 10gen o
  • 如何在第三方库中的Eclipse中设置断点?

    我在第三方库的类中收到 NullPointerException 现在我想调试整个事情 我需要知道该类是从哪个对象中保存的 但在我看来 我无法在第三方的班级中设置断点 有谁知道摆脱我的麻烦的方法吗 当然 我使用 Eclipse 作为我的 I
  • C# Networkstream.read()

    read buffer offset length 实际上是如何工作的 如果我将读取的长度传递为 32 这是否意味着它会一直阻塞 直到收到 32 个字节 我知道如果出现套接字异常或连接关闭 它将分别返回异常或 0 如果发送方只发送 31 个
  • 如何使用 Rspec 测试 google Analytics (garb) API?

    我正在使用garb gem https github com vigetlabs garb从 Google Analytics 中获取一些基本统计数据 例如页面浏览量 一切正常 但我无法找出测试 API 调用的最佳方法 这是我的 Analy
  • 如何计算提交、树和 blob 的哈希值?

    我对如何计算提交 树和 blob 的 SHA 1 哈希值感到困惑 按照本文 https gist github com masak 2415865 提交哈希值是根据以下因素计算的 提交的源树 分解为所有子树和 blob 父提交 sha1 作
  • 存储及其锁定文件已被另一个进程锁定:/var/lib/neo4j/data/databases/graph.db/store_lock

    我做了什么 neo4j console 工作正常 ctrl C 重新启动后我收到上面的消息 我删除 var lib neo4j data databases graph db store lock 那么我有 Externally locke
  • 如何在where条件下使用case语句?

    我需要在 WHERE 子句中使用 CASE 语句 例如 WHERE p resource qry seq b resource qry seq AND p resource id b resource id AND CASE WHEN b
  • 在服务器端 Blazor 中使用 SignInManager

    是否可以使用SignInManager没有一些HTTPContext 我正在制作 Blazor 服务器端应用程序 我需要让最终用户使用以下方式登录PasswordSignInAsync 的方法SignInManager 如果有其他方法可以用
  • 使用特定顺序序列化映射

    我有一个使用字符串作为键和值的地图 我有一个键数组 用于指定映射值的顺序 我想将该映射序列化为 JSON 但保持数组上定义的顺序 这里有一个示例代码 http play golang org p A52GTDY6Wx http play g
  • MSBuild 未从导入的项目运行 BuildDependsOn 任务

    我有一个导入的 MSBuild 项目 appconfig transformation targets 它定义了一些任务并将它们放入 BuildDependsOn 属性中 我已将此文件放置在解决方案的顶级文件夹中 Projects Libr
  • 单击不同的按钮将不同的 HTML 加载到相同的 #Content DIV 中

    我有一个包含多个选项的菜单 我想知道如何将不同的 HTML 加载到相同的菜单中div 称为 content 取决于您按下的菜单按钮 我有这个菜单代码 div ul li a href Accueil a li li a href Qui s
  • 使用 t-sne 可视化从 gensim 生成的 word2vec

    我使用 gensim 在我自己的语料库上训练了 doc2vec 和相应的 word2vec 我想使用 t sne 和单词来可视化 word2vec 如图所示 图中的每个点也带有 单词 我在这里看了一个类似的问题 word2vec 上的 t
  • Windows 7 中将包含哪个 .NET 框架版本? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道微
  • 如何从本地运行的 Spark Shell 连接到 Spark EMR

    我已经创建了一个 Spark EMR 集群 我想在本地主机或 EMR 集群上执行作业 假设我在本地计算机上运行 Spark shell 如何告诉它连接到 Spark EMR 集群 确切的配置选项和 或要运行的命令是什么 看起来其他人在这方面
  • std::unique_ptr、删除器和 Win32 API

    在VC2012中 我想使用唯一指针和删除器在构造函数中创建互斥体 这样我就不需要创建析构函数来调用CloseHandle 我本以为这会起作用 struct foo std unique ptr
  • AJAX 请求之前单击按钮的客户端验证

    我正在使用 MVC 4 我希望能够验证表中行集合中的单行 以确保正确输入字段并通过验证 属性已正确应用于模型 例如 Required MaxLength 50 MinLength 5 public string Name get set 现
  • 生成HMAC SHA256签名Python

    尝试为 3Commas 生成 HMAC SHA256 签名 我使用与官方示例 https github com 3commas io 3commas official api docs blob master rest api md exa