news 2026/9/3 18:46:45

Cybersecurity-Projects:从零构建C++字典Hash爆破工具,测一测你的密码到底多脆弱

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cybersecurity-Projects:从零构建C++字典Hash爆破工具,测一测你的密码到底多脆弱

Cybersecurity-Projects:从零构建C++字典Hash爆破工具,测一测你的密码到底多脆弱

【免费下载链接】Cybersecurity-ProjectsBuilding 70 Projects ranging from beginner to advanced so anyone can — learn from, build upon, use as a reference, or even copy directly. Gamified Cybersecurity learning 👇项目地址: https://gitcode.com/gh_mirrors/cy/Cybersecurity-Projects

Cybersecurity-Projects仓库中的hash-cracker是一个用 C++23 编写的多线程Hash 爆破工具(哈希破解器):它内置 1 万条常见密码字典,支持 MD5 / SHA1 / SHA256 / SHA512 四种算法的字典攻击、暴力破解与规则变形,一条命令就能告诉你——你的密码在攻击者手里能活多久。跟着本文从零构建这个 C++ 字典 Hash 爆破工具,亲眼看"password"在 1 秒内被打穿。

⚠️ 安全提醒:请仅对自己的练习哈希做测试,不要用于攻击他人系统。

为什么值得动手测一次密码强度?

数据库泄露后,攻击者拿到的不是明文密码,而是哈希值。而破解速度取决于哈希算法有多快:

算法十六进制长度状态现实教训
MD532 位早已不安全遗留系统仍在用
SHA140 位已不安全2012 年 LinkedIn 泄露 650 万条,90% 在 72 小时内被破解
SHA25664 位对数据校验安全,但存密码太慢(对攻击者而言)现代框架仍常见
SHA512128 位同上Linux/etc/shadow常见

自己写一个字典 Hash 爆破工具,是理解"为什么不能拿 MD5 存密码"最快的方式——这也是 learn/01-CONCEPTS.md 中"真实泄露案例"章节想教给每个初学者的内容。

↑ 字典攻击实时进度:多线程把 1 万条字典分片到所有 CPU 核心,破解速度可达每秒数百万次哈希

一键安装:构建你的 C++ 哈希破解器

工具采用 CMake + Ninja 构建,install.sh 会自动识别你的包管理器(apt / dnf / pacman / brew)装好依赖(g++、CMake、Ninja、OpenSSL、Boost.program_options)并编译安装:

git clone https://gitcode.com/gh_mirrors/cy/Cybersecurity-Projects cd Cybersecurity-Projects/PROJECTS/beginner/hash-cracker ./install.sh

构建完成后,二进制会软链到~/.local/bin/hashcracker。项目还提供 Justfile 封装了构建、测试等常用命令,输入just即可查看全部任务。

环境要求:GCC 14+(需要 C++23)、CMake 3.25+。详见 learn/00-OVERVIEW.md 的前置条件清单。

三种攻击方式:30 秒打穿一个弱密码

1️⃣ 字典攻击:用泄露过的"人话"碰运气

人起的密码大多"有迹可循"。工具用内存映射(mmap)零拷贝读取字典,配合--wordlist逐条试算,并自动根据哈希长度识别算法:

hashcracker --hash 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 \ --wordlist wordlists/10k-most-common.txt # ✔ CRACKED: password (不到 1 秒)

仓库自带 3 份字典:10k-most-common.txt(1 万条)、john-the-ripper.txt(3106 条经典密码)、mixed_it.txt。

2️⃣ 暴力破解:用数学碾压短密码

不知道密码内容?那就从短到长把所有组合都试一遍:

hashcracker --hash 187ef4436122d1cc2f40dc2b92f0eba0 \ --bruteforce --charset lower --max-length 4 --type md5 # ✔ CRACKED: ab (约 35 万候选)

搜索空间呈指数增长:4 位小写只要 45.7 万种组合,而 8 位全字符集高达 6.6×10¹⁵ 种。learn/01-CONCEPTS.md 里有完整的"破解耗时表"——结论只有一个:长度比复杂度更重要

3️⃣ 规则变形:专治"为了满足密码策略"的密码

网站强制"必须含大写+数字+特殊字符"?大多数人会变成Password1!这种可预测模式。规则引擎会把字典词做首字母大写、Leet 替换(a→@e→3)、追加数字、反转等变换,把 1 万条字典瞬间膨胀成千万级候选:

hashcracker --hash ed9d3d832af899035363a69fd53cd3be8f71501c \ --wordlist wordlists/10k-most-common.txt --rules

↑ 规则变形攻击:password在规则引擎下会生成Passwordp@$$w0rdpassword123等变体,轻松绕过复杂度策略

源码导览:这个工具是怎么"快"起来的?

整个项目不到 2000 行,结构清晰,非常适合 C++ 初学者阅读(完整走读见 learn/03-IMPLEMENTATION.md):

模块路径亮点
引擎核心src/core/Engine.hpp策略模板 +std::jthread线程池,工作分片零锁竞争
哈希器src/hash/EVPHasher.hppOpenSSL EVP 统一封装,4 种算法只是类型别名
算法识别src/hash/HashDetector.cpp按十六进制长度自动判断 MD5/SHA1/SHA256/SHA512
字典攻击src/attack/DictionaryAttack.cppmmap 零拷贝读词表
暴力破解src/attack/BruteForceAttack.cpp字符集可配置、键空间按线程切分
规则引擎src/rules/RuleSet.cppC++23std::generator协程惰性生成变体
进度显示src/display/Progress.cpp独立线程渲染进度条、速度与 ETA

架构思想一句话概括:哈希器与攻击策略在编译期绑定(策略模板模式),哈希调用可被内联进破解主循环——这是 learn/02-ARCHITECTURE.md 花整章对比运行时多态讲透的核心设计。

从爆破结果吸取教训:密码安全清单 🛡️

跑完上面几条命令后,建议记住这几条"攻防结论"(源自 learn/01-CONCEPTS.md):

  • 别用词表里的词:你的密码若曾出现在任何一次数据泄露中,就已经躺在破解字典里;
  • 长度 > 复杂度:12 位以上随机字符(如密码管理器生成的x7$kQ2!mR9pL)远比P@ssw0rd!难破——规则变形专打后者;
  • 加盐不能防定向爆破:盐能废掉彩虹表、阻止批量比对,但攻击者拿到盐后照样能逐个猜(本工具--salt参数就是演示这种攻击);
  • 服务端该用慢哈希:bcrypt / argon2 每次哈希慢几百倍,同一份 1 万条字典,SHA256 下 3 毫秒破解,bcrypt 下要 33 秒——慢,就是安全。

继续深入:测试套件与扩展挑战 🚀

  • tests/:38 个 GoogleTest 用例,覆盖哈希器、规则、引擎与三种攻击策略,想学"安全工具怎么写测试"从这里入手;
  • learn/04-CHALLENGES.md:10 个由易到难的扩展练习——给工具加 SHA3 支持、批量破解百万级哈希、实现可断点续跑的进度文件、写 hashcat 风格自定义规则文件……做完你就相当于亲手造了一个迷你 hashcat。

hash-cracker 是 Cybersecurity-Projects 中 70 个从入门到进阶的网络安全学习项目之一。把"测一测你的密码"做成一次动手实验,比任何安全科普都更让人印象深刻。

【免费下载链接】Cybersecurity-ProjectsBuilding 70 Projects ranging from beginner to advanced so anyone can — learn from, build upon, use as a reference, or even copy directly. Gamified Cybersecurity learning 👇项目地址: https://gitcode.com/gh_mirrors/cy/Cybersecurity-Projects

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 22:22:44

在 PC 上跑 2000 款 Switch 游戏:yuzu 模拟器的实现与调优手记

在 PC 上跑 2000 款 Switch 游戏:yuzu 模拟器的实现与调优手记 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu yuzu 是一款开源的任天堂 Switch 模拟器,把 Switch 的 ARM CPU、Maxwell GPU …

作者头像 李华
网站建设 2026/9/3 22:20:22

yuzu Switch 模拟器快速上手指南:5 步在 PC 上免费跑通 Switch 游戏

yuzu Switch 模拟器快速上手指南:5 步在 PC 上免费跑通 Switch 游戏 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 你手里的游戏只能在 Switch 上玩,但主机不在身边,再买一台又…

作者头像 李华
网站建设 2026/9/3 22:21:52

Qdrant 向量数据库实战指南:从 RAG 检索到集群部署的完整路径

Qdrant 向量数据库实战指南:从 RAG 检索到集群部署的完整路径 【免费下载链接】qdrant Qdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io…

作者头像 李华