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

MD5哈希迭代截断编码挑战实现错误排查求助

代码问题排查与修正

问题点分析

  • 初始步骤未执行截断:你在循环前先计算了输入的完整MD5哈希,但没有按照要求先截断最后16个字符,直接把完整32位哈希传入循环,导致第一次循环的输入就不符合规则。
  • 循环内未用截断后的字符串作为下一次输入:循环里你始终把完整的32位哈希作为下一次MD5的输入,而非每次截断后的16位字符串。同时你仅打印截断结果,却未将截断后的值赋值给变量作为后续输入,导致流程逻辑断裂。
  • 流程次数不匹配:需求要求重复「MD5编码→截断最后16位」流程50次,原代码在循环前多做了一次无截断的MD5操作,整体执行次数与要求不符。

修正后的代码

import hashlib

current_str = 'MjhjMmRmMTIzMWFlOWVkMA=='  # 初始输入

# 重复执行50次「MD5编码→截断最后16位」流程
for _ in range(50):
    # 对当前字符串生成MD5十六进制哈希
    md5_result = hashlib.md5(current_str.encode()).hexdigest()
    # 截断最后16个字符,保留前16位作为下一次输入
    current_str = md5_result[:-16]

# 输出最终结果
print(current_str)

修正说明

  1. 从初始输入直接进入循环,每次完整执行「MD5编码→截断」的流程,确保每一步输入都是上一次截断后的16位字符串。
  2. 将截断后的字符串赋值给current_str,作为下一次循环的输入,保证流程连贯符合要求。
  3. 循环严格执行50次,完全匹配需求中的重复次数要求,最终输出即为第50次截断后的目标哈希值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:30:02