文档网络安全教程【免费下载链接】ctf-wikiCome and join us, we need you!项目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki点击查看免费下载MD5 是 CTF 密碼學賽題中最常出現的雜湊Hash演算法之一本指南以 ctf-wiki 倉庫 docs/zh-tw/docs/crypto/hash/md5.md 為核心系統整理 MD5 的輸入輸出結構、初始化向量IV特徵、16 位與 32 位摘要的區別以及暴力破解、碰撞查詢、指定前綴碰撞與哈希長度擴展攻擊等實戰手法。讀者學完本指南後將能在逆向題中快速識別 MD5 演算法並掌握針對加鹽 MD5 的破解思路與常用工具鏈。基本描述輸入輸出與摘要結構MD5 的輸入輸出可以簡單概括為輸入任意長度的消息按512 比特進行分組處理。輸出128 比特的消息摘要通常以 32 個十六進制字符顯示。在 docs/zh-tw/docs/crypto/hash/introduction.md 中ctf-wiki 給出了哈希函數的一般模型哈希函數把任意長度的消息或數據壓縮成固定長度的摘要因此理論上對於任何一個 hash 值都存在若干個消息與之對應即碰撞collision。MD5 正是一個典型的迭代型哈希函數與 SHA1、SHA256、SHA512 一樣其核心思路是「使用同一個哈希函數以不同的參數進行多次迭代運算」。下圖展示了哈希函數的一般模型MD5 的壓縮流程即遵循這一結構各主流哈希演算法的輸出長度對比如下出自 introduction.md演算法類型輸出 Hash 值長度MD5128 bitSHA1160 bitSHA256256 bitSHA512512 bit哈希函數需要滿足的性質包括輸入長度可變、輸出長度固定、計算效率高、單向性由摘要反推消息在計算上不可行、抗弱碰撞性給定消息 x難以找到消息 y 使 H(x)H(y)、抗強碰撞性難以找到任意一對 x、y 使 H(x)H(y)以及偽隨機性。MD5 的「被攻破」正是集中在抗碰撞性這一環節攻擊者無需逆向出原始消息只要能在可接受的計算量內構造出兩個摘要相同的不同消息即可在簽名偽造、完整性繞過等場景中造成實際危害。16 位 MD5 與 32 位 MD5 的區別在 CTF 題目中有時我們獲得的 MD5 是16 位的。這裡需要澄清一個常見誤解16 位 MD5 其實來源於 32 位 MD5而不是另一種獨立演算法。按照 ctf-wiki 的說明16 位 MD5 的產生方式是將 32 位 MD5 去掉前八位再去掉後八位即取中間的 16 個十六進制字符。因此當你在逆向或取證場景中見到一個 16 位的十六進制串時可以將其視為對應 32 位 MD5 的子串來進行後續檢索與比對例如在線上碰撞查詢平台中同時嘗試兩種形式。透過初始化 IV 識別 MD5 函數在逆向分析中我們往往無法直接看到函數名但可以通過函數的初始化變量來判斷其是否為 MD5。MD5 的初始化 IV 如下ctf-wiki 原文0x674523010xEFCDAB890x98BADCFE0x10325476只要一個函數的初始化過程中出現這四個常量基本可以猜測該函數就是 MD5。這四個常量是 MD5 演算法的標準初始化鏈接變量任何標準實現無論是 C、Python 還是彙編層面的手寫實現都會使用它們。這一識別技巧可以與 SHA1 形成對照。在 docs/zh-tw/docs/crypto/hash/sha1.md 中SHA1 的初始化 IV 包含五個變量0x67452301 0xEFCDAB89 0x98BADCFE 0x10325476 0xC3D2E1F0其中前四個與 MD5 完全相同第五個0xC3D2E1F0是新增的SHA1 輸出 160 比特需要 5 個 32 位鏈接變量。因此在實戰中看到這四個常量時還需進一步確認後續是否出現第五個初始化常量才能準確區分 MD5 與 SHA1。MD5 的破解方法ctf-wiki 明確指出目前可以說 MD5 已經基本被攻破——此處「攻破」主要指 MD5 不再滿足抗碰撞性。以下按攻擊場景梳理常見的破解手段。暴力破解與字典攻擊暴力攻擊不依賴於演算法細節只與 Hash 值長度有關典型手段包括生日攻擊法Birthday Attack不利用哈希函數的結構或代數弱性質僅依賴消息摘要的長度。對於 128 比特的 MD5理論上大約只需要約2^64次計算即可找到一對碰撞。中點交會攻擊法Meet-In-The-Middle生日攻擊的一種變形不直接比較 Hash 值而是比較中間變量適用於攻擊具有分組鏈結構的哈希方案。在工具層面docs/zh-tw/docs/crypto/hash/attack.md 推薦了HashCat——目前基於 CPU 與 GPU 破解 Hash 的主流工具。針對口令類 MD5實戰流程通常為先通過字典如 rockyou 等常用洩漏口令集或規則生成候選明文再計算其 MD5 與目標摘要比對對於「加鹽」的 MD5則需要先分析鹽的長度與拼接方式鹽在前還是鹽在後再據此調整字典生成策略。線上碰撞查詢平台對於強度不高的 MD5 摘要可以藉助網上常見的 MD5 查詢/碰撞服務如 cmd5、ttmd5、pmd5 等平台其本質是彩虹表與海量字典的組合直接反查明文。此類平台適合破解由常見口令、單詞或短文本生成的 MD5。需要注意的是此類查詢服務依賴預計算數據庫對於隨機性強、加鹽或長明文的消息通常無法直接命中需要配合爆破工具使用。生成指定前綴的 MD5 碰撞在需要構造「指定前綴」碰撞的場景例如兩個文件必須以相同內容開頭但後續不同、摘要卻相同中可以使用fastcoll這一工具。它能在可接受的時間內生成給定前綴的 MD5 碰撞對是 CTF 中構造 MD5 碰撞文件的常用工具。哈希長度擴展攻擊Hash Length Extension AttackMD5 基於Merkle–Damgård 構造因此與 SHA1 一樣對哈希長度擴展攻擊表現出脆弱性。attack.md 給出了此類攻擊的完整原理核心要點如下此類哈希的消息填充方式類似先在消息後追加一個 1再填充若干個 0直到總長度與 448 同餘即對 512 取模餘數為 448最後附上 64 位的消息長度填充前的長度。每一分組得到的鏈接變量都會作為下一次執行哈希函數的初始向量 IV只有最後一組才把鏈接變量轉換為最終 Hash 值。攻擊適用於H(key ∥ message)這類構造需要滿足的條件是已知 key 的長度未知則需爆破、可以控制 message 的內容、已知包含 key 的某條消息的 Hash 值。在此前提下攻擊者可以推導出H(key ∥ message ∥ padding ∥ extra)的結果而無需知道 key 的具體內容——因為填充後的鏈接變量可以從已知 Hash 值逆推得到後續 extra 部分的計算完全可控。CTF 中常用工具是hashpump其典型用法為輸入已知的 key 長度、原始消息與原始 Hash 值指定要追加的 extra 內容即可輸出偽造的完整消息與新 Hash 值。這類題目常見於 Web 簽名驗證場景例如服務端以md5(secret input)作為認證憑證。自定義哈希演算法的可逆設計缺陷除了標準 MD5 外attack.md 中「Hashinator」一例也值得借鑑該題從 rockyou 字典選取 password生成與口令長度相關的 salt再用md5、sha1、blake、scrypt四種演算法隨機進行 32 輪混合哈希。由於interim_salt與interim_hash的更新採用了異或xor結構而xor運算可逆因此即使涉及 MD5 等標準演算法整個 32 輪鏈路仍然可以從最終哈希逐輪逆推還原最初的 password 與 salt。這提醒我們哈希演算法本身安全並不代表「多輪混合 異或」的組合設計安全遇到自定義哈希邏輯時應首先檢查其運算結構是否可逆。實戰題目指引加鹽 MD5 的破解ctf-wiki 的 MD5 章節列出了兩道相關賽題CFF 2016 「好多鹽」JarvisOJ 「好多鹽」從題名與哈希章節的語境可以推斷「好多鹽」考察的核心是加鹽saltMD5 的破解與普通 MD5 相比加鹽會顯著破壞彩虹表與線上查詢平台的有效性因為相同口令在不同鹽下會產生完全不同的摘要。解題通常需要確定鹽的獲取方式鹽可能來自固定字符串、隨機數或題目給出的附加數據確定拼接順序是salt password、password salt還是混合構造這決定了字典生成與哈希計算的方式選擇破解手段當口令來自可窮舉字典時用 HashCat 等工具結合鹽進行帶規則的爆破當可以構造碰撞時考慮 fastcoll 等碰撞工具。此類題目的通用思路字典 規則爆破同樣適用於其他加鹽哈希場景。小結MD5 的實戰知識可以濃縮為三點識別通過四個初始化常量0x67452301、0xEFCDAB89、0x98BADCFE、0x10325476快速判斷、破解按場景選擇線上查詢、HashCat 暴力破解、fastcoll 碰撞或 hashpump 長度擴展攻擊、警惕加鹽與多輪混合並不能從根本上挽救 MD5 的抗碰撞性在現代安全設計中應改用 SHA-256 及以上或專用密碼雜湊演算法。在 CTF 解題時建議同時查閱倉庫中的 哈希函數綜述、哈希攻擊綜述 與 SHA1 章節以建立完整的哈希攻防知識體系。赞分享文档网络安全教程【免费下载链接】ctf-wikiCome and join us, we need you!项目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki点击查看免费下载相关推荐CTF-Wiki 密碼學專題ARXAdd-Rotate-Xor運算原理與 2018 \*ctf primitive 實戰解析CTF Wiki 密碼學專題ARXAdd Rotate Xor運算原理與 2018 \ ctf primitive 實戰解析 導讀 本文基於 CTF Wi文档网络安全教程CTF-Wiki 密碼學ElGamal 數字簽名算法原理與四類常見攻擊實戰CTF Wiki 密碼學ElGamal 數字簽名算法原理與四類常見攻擊實戰 ElGamal 數字簽名方案是基於離散對數困難問題的經典簽名體制與其加密方案不同文档网络安全教程CTF Misc 現實世界常用編碼全解條形碼與二維碼的識別與分析CTF Misc 現實世界常用編碼全解條形碼與二維碼的識別與分析 本指南聚焦 CTF Misc「編碼分析」體系中現實世界最常遇到的兩類視覺編碼——條形碼與二維文档网络安全教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Cursor 简单三步提高生成效率:TaoToken 统一 Key 配置与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 16:26:04
基于SpringBoot的健康食谱管理系统的设计与实现:技术栈、背景意义与核心代码 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
1. 项目背景与意义
随着人们生活水平的不断提高,健康饮食逐渐成为社会关注的焦点。传统的食谱管理方式多依赖纸质记录或零散的网页收藏,存在信息… · 2026/9/25 16:25:58
AI视频生成进阶:用镜头语言提升电影感与叙事逻辑 AI 视频生成这件事,很多人卡在一个很尴尬的阶段:Prompt 写得越来越长,形容词堆了一大堆,出来的画面却还是“能看但不好看”。问题往往不在模型能力,而在于我们只盯着文字描述,忽略了影视语言本身。镜头语言… · 2026/9/25 16:25:46
Python入门:安装到循环全攻略 摘要:本篇笔记记录Python环境安装、常用基础数据类型、运算符与表达式、分支if语句、while循环基础语法,附带示例代码与易错点总结。一、Python的安装访问Python官网下载对应操作系统的安装包。Windows安装时务必勾选 Add Python to PATH,自动… · 2026/9/25 17:01:10
Atlas 300V实战:从YOLO模型转换到推理部署的完整指南 我第一次拿到Atlas 300V 24G的时候,第一反应是“这不就是张显卡嘛”。直到把卡插上服务器、照着显卡的思路折腾了一周、被各种报错反复摩擦之后,我才真正摸清这块卡的脾气。这篇文章不打算写成官方文档的复读机,而是把我实际部署YOLO模型到At… · 2026/9/25 17:01:10
红外目标检测数据集实战指南:加载、预处理与模型适配 1. 这20个红外目标检测数据集不是“拿来即用”的资源包,而是需要你亲手拆解的工程化拼图我第一次在实验室接到红外目标检测任务时,导师甩过来一个压缩包,说:“里面是公开数据集,你先跑通baseline。”——结果三天后我盯… · 2026/9/25 17:01:04
蓝牙学习之Linux命令 bluetoothctl
主要功能:扫描、配对、连接、信任、查看设备信息等。
扫描
ethanG5000:~$ bluetoothctl scan on
SetDiscoveryFilter success
Discovery started
ethanG5000:~$ bluetoothctl devices
Device B0:82:E2:67:46:DB XXXXXX配对
ethanG5000:~$ bluetoothct… · 2026/9/25 17:01:04
AI日报类项目设计与落地要点解析 我无法基于“AI 日报(2026年9月18日)”这一标题生成符合要求的高质量博文。原因如下:该标题本身不具备可拆解的具体项目属性:它是一个时间标记泛称组合(“AI 日报”),既非技术方案、工具实现、硬… · 2026/9/25 17:00:39
LLM Wiki 亮点深挖:知识图谱、MCP、深度研究、两步摄入是怎么实现的(TaoToken 配置骨架) /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 17:00:02
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37