只会调库的加密,等于没学过
很多开发者在项目里用过 MD5 存密码、用 RSA 做签名,但一旦被问到“为什么 MD5 不能用来做加密”“DES 和 AES 有什么区别”“RC4 为什么被弃用”,往往只能答出“大家说它不安全”。这不是个别现象,而是普遍的能力缺口:知道 API 怎么调,不知道算法在算什么东西。
这门专题课直接对着五种经典算法讲——SHA、MD5、DES、RC4、RSA,既有散列算法,也有对称加密和非对称加密,恰好覆盖了密码学里最常被面试、也最容易被误用的几个基础算法。课程主线是“讲解 + 实现”,也就是说,不是只讲概念,而是带着你把算法本身写出来。这对补齐“知其所以然”这块短板非常直接。
适合谁看,建议先啃哪几块
适合有至少一门编程语言基础、能看懂位运算和循环结构的学习者。不需要预先学过密码学,但如果你连十六进制、按位异或、取模运算都不熟悉,建议先花半小时补一下这些基础再开始。
建议按这样的顺序看:先看 SHA 和 MD5 这两块。它们同属散列算法,结构上有相似之处,放在一起学能更快理解“消息摘要”的本质——长度固定、不可逆、雪崩效应。接着看 DES,重点理解分组加密、Feistel 结构和子密钥生成,这是对称密码的核心思想。再看 RC4,它属于流密码,实现简单但原理和 DES 完全不同,对比着学印象更深。最后看 RSA,它依赖大数分解难题,涉及模幂运算和公钥/私钥体系,建议放到最后是因为需要前面对称密码作参照,才能理解“非对称”到底解决了什么问题。
如果时间紧,优先把 DES 的分组加密原理啃透,它是整门课承上启下的关键。
学完能独立做什么,资料怎么用
学完这门课,你应该能独立做到以下三件事:第一,不依赖任何密码学库,用手写代码完成 MD5 摘要计算和 SHA 摘要计算,并验证结果与标准工具输出一致。第二,能自己实现 DES 的加密和解密流程,说清楚 16 轮迭代中每一轮做了什么,能解释为什么解密可以用同一套结构。第三,能实现 RC4 的密钥调度和伪随机生成,能在代码里跑通加密与解密互为逆运算的过程,并能解释为什么 RC4 的密钥不能重复使用。
对 RSA,至少要能实现密钥生成、加密、解密的完整流程,并理解公钥指数和私钥指数的数学关系——即使只做到小素数的演示级实现,也已经比只会调库强很多。
配套练习上,建议每看完一个算法的讲解,立刻做三件事:一是自己动手把代码敲一遍,不要复制;二是用几个已知的
课程目录
1-1 [加密解密专题介绍] 加密解密专题介绍 (13:33) 2-1 [SHA加密算法讲解及实现] SHA加密算法_1 (27:20) 2-2 [SHA加密算法讲解及实现] SHA加密算法_2 (01:03:31) 2-3 [SHA加密算法讲解及实现] SHA加密算法_3 (53:54) 3-1 [MD5加密算法讲解及实现] MD5加密算法_1 (36:39) 3-2 [MD5加密算法讲解及实现] MD5加密算法_2 (40:45) 4-1 [DES加密解密算法讲解及实现] DES加密解密算法_1 (15:27) 4-2 [DES加密解密算法讲解及实现] DES加密解密算法_2 (01:34:19) 4-3 [DES加密解密算法讲解及实现] DES分组加密解密算法讲解及实现 (22:53) 5-1 [RC4加密解密算法讲解及实现] RC4加密解密算法 (24:30) 6-1 [RSA加密解密算法讲解及实现] RSA加密解密算法_1 (35:35) 6-2 [RSA加密解密算法讲解及实现] RSA加密解密算法_2 (01:30:16)





