You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中用一行代码结合MD5与SHA256哈希算法?

解决Python中MD5与SHA256哈希组合的问题

你代码里的问题主要有两个:

  • 模块调用顺序错误:应该是hashlib.md5()而非md5.hashlib()
  • 哈希函数仅接受字节串输入,sha256(...).hexdigest()返回的是字符串,需要先编码为字节

一行代码实现组合哈希的正确写法

可以把两次哈希逻辑压缩为一行,确保输入为字节串:

return hashlib.md5(hashlib.sha256(block_string).digest()).hexdigest()

如果一定要用hexdigest()的结果作为输入,记得先编码:

return hashlib.md5(hashlib.sha256(block_string).hexdigest().encode()).hexdigest()

修改后的完整函数

更新后的函数如下:

import hashlib
import json

def calcHash(self):
    block_string = json.dumps({"nonce":self.nonce, "tstamp":self.tstamp, "output":self.output, "prevhash":self.prevhash}, sort_keys=True).encode()
    return hashlib.md5(hashlib.sha256(block_string).digest()).hexdigest()

补充说明

  • 使用digest()直接获取SHA256的字节结果作为MD5输入,比先转十六进制字符串再编码更高效
  • 若需要调换哈希顺序(先MD5再SHA256),只需交换两个函数的调用顺序即可

内容的提问来源于stack exchange,提问作者someone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:18:19