为什么是纯文本
密码学的笔记有个特点:公式和代码片段特别多。用 Markdown 纯文本存,既能被 grep、ripgrep 这类工具直接检索,又方便和 git 配合做版本管理。相比 Notion、语雀这类重工具,纯文本几乎零迁移成本。
目录结构
我的笔记按「领域 → 主题 → 条目」三层组织:
text
crypto-notes/
├── symmetric/ # 对称密码
│ ├── aes.md
│ └── block-mode.md
├── asymmetric/ # 非对称密码
│ ├── rsa.md
│ └── ecdsa.md
├── hash/ # 哈希与 MAC
│ └── hmac.md
└── attacks/ # 攻击手法
└── padding-oracle.md
统一笔记模板
每篇笔记固定一个结构,检索时才不会乱:
标签:一行 YAML front-matter,标注领域和难度。一句话结论:先给结论,方便扫读。公式 / 代码:核心内容。踩坑:做 CTF 时实际遇到的问题。
检索方案
用 ripgrep 配合自定义 alias,可以实现秒级全文检索。比如想找所有和 padding oracle 相关的内容:
bash
# 在笔记目录里全文检索,高亮命中
rg -i "padding oracle" crypto-notes/ --line-number
# 配合 fzf 做交互式检索
rg --files crypto-notes/ | fzf | xargs less
「笔记的价值不在写得多少,而在要用的那一刻能不能三秒内找到。」
小结
这套体系的关键在于 纯文本 + 可检索 + 可版本化 三件事。工具越简单,越不容易因为「维护工具」本身而放弃记笔记。完整模板我放在 GitHub 上了,需要可自取。