密码学课本太抽象:Cryptopals 让你写代码破题

对称加密、分组模式、随机数这些概念,课本讲一遍还是隔着一层。这套题把密码学拆成八个难度递进的组,每组若干道编程题,答案要靠自己写代码算出来,做完对「为什么不能自己发明加密方案」会有非常直观的认识。
它解决什么问题
密码学概念背得出定义,却说不清哪里用得不对会出问题。
想动手实现又找不到难度合适的练习题,教材习题又太偏数学。
核心能力
| 能力 | 具体能做到什么 |
|---|---|
| 八组递进 | 从编码转换一路延伸到更复杂的主题,难度逐步加深 |
| 编程题形式 | 每道题都要求写代码求出结果,不能靠选择题蒙过去 |
| 语言不限 | 用什么语言实现都可以,题目只看结果是否正确 |
| 自带校验 | 求出答案后可以对照说明判断对错,不必求助他人 |
| 侧重原理 | 关注的是方案为什么可行或不可行,而不是工具参数 |
| 免费开放 | 挑战长期公开,不需要付费或注册 |

自己写出来才算数,别只看别人的解
这套题的价值在于「必须自己写」:很多题目的思路一说就懂,真正动手才会遇到补齐数据、处理边界、判断结果对不对这些麻烦,而这些麻烦正是理解方案的入口。题目全部在本地环境完成,不需要也没必要连接任何外部目标——这类练习本身就不会碰到别人的系统,保持在这个范围内是最省心的做法。
建议按组顺序推进,前一两组看着简单,其实是后面所有题的基础,跳过去容易在后面反复卡壳。卡住时先回头检查数据长度、字节序这类细节,比直接搜答案收获大得多。说明与题目描述以英文写成,术语不熟可以边查边做;写出正确结果之后,值得再想一遍这套方案在什么条件下会失效。
同类工具怎么选
| 工具 | 授权 | 差别在哪 |
|---|---|---|
| OverTheWire | 官方免费资源 | 偏系统与命令行的综合闯关,不专注密码学 |
| PortSwigger Academy | 官方免费资源 | 聚焦 Web 层风险,配有可交互的在线靶场 |
| picoCTF | 官方免费资源 | 综合型练习题库,密码方向题目难度跨度更大 |
谁适合用
- 有编程基础、想真正弄懂密码学的开发者
- 在准备安全方向学习、需要补底层知识的在校生
- 对加密方案感兴趣、想动手实现一遍的技术爱好者
怎么开始
- 打开 cryptopals.com,先看题目分成哪几个组。
- 从第一组第一题开始,在自己的编辑器里写代码求解。
- 拿到结果后对照题目说明判断是否正确。
- 把这一题用到的思路记进笔记,再进下一题。
- 完成一整组后回头重做一遍最卡的那几题,确认已掌握。
常见问题
要用特定语言吗?
不限,任何能处理字节数据的语言都行,选自己顺手的即可。
需要数学很好吗?
前几组只需要基本的字节操作,越往后涉及的理论越多,可以边做边补。
有官方答案吗?
题目说明里会给出判断结果的方法,完整解法需要自己写出来。
适合零基础吗?
需要会写代码、理解字节与字符串的区别,完全没编程基础建议先补这一块。
授权与合规
题目与说明长期公开发布,全部挑战免费,不设注册门槛也不涉及付费内容。 官网:cryptopals.com。
继续找同类资源
这条属于「学习资料」栏目,同栏目还有更多可直接使用的免费资源,可以在 学习资料全部资源 里按需翻阅。
相关资源
同栏目下这几条也常被一起翻到:
资源信息
界面语言
英文
授权方式
官方免费资源
适用平台
Linux / macOS / Web / Windows
获取方式
直链下载
资源更新
2026-09-20
页面更新
2026-09-20
↓ 获取资源
点击按钮直接前往资源页面。