这门课解决什么问题
很多做后端、安全或底层开发的人,遇到密码学相关需求时,往往只会直接调现成的加密库,对算法内部的位运算、消息填充和压缩逻辑一知半解。一旦碰到跨语言对接、硬件资源受限环境下的精简实现,或者需要排查国密标准合规性问题时,纯靠调库就会卡壳。这门课聚焦的就是国密杂凑算法 SM3 的底层实现细节,不谈宽泛的密码学理论,而是带着你从零开始,用 C 语言把 SM3 的核心逻辑逐行敲出来。它解决的是“知道算法名但写不出具体代码”这个痛点,帮你把国密标准文档里那些抽象的置换函数、消息扩展步骤,转化成能在实际项目里跑通的工程代码。
适合什么基础与资料怎么配合练习
这套资料不适合完全没有编程经验的新手。你需要具备基本的 C 语言阅读和编写能力,对指针、位运算操作有概念,最好接触过其他哈希算法的代码结构。课程本身是从新建工程文件开始的,建议你在看视频前,先翻阅一遍 GB/T 32905 密码杂凑算法的标准文档,对照着看会更有感觉。练习时不要只用眼睛看,准备一个 C 语言的开发环境,跟着视频把常量定义、布尔函数、置换函数依次写出来。资料里的前几个章节涉及头文件包含和项目搭建,这部分可以快速过,重点要放在消息填充、大端小端互转以及压缩函数这几节。这几块是 SM3 算法的核心,也是最容易写出隐蔽 Bug 的地方。看完一节就自己编译运行,用测试向量去验证输出结果,别等全写完再统一调试。
学完能独立做什么
完整跟完这套资料并独立写出代码后,你能在实际工作里手写一个不依赖第三方库的 SM3 哈希计算模块。具体来说,你可以把它集成到嵌入式设备或资源受限的系统中去计算数据摘要,也能在跨平台对接国密接口时,自己排查由于字节序、数据填充不对导致的哈希值不一致问题。当再遇到需要验证数据完整性或配合 SM2 签名算法的场景时,你不再只是个调包的旁观者,而是能看懂底层逻辑、能对算法执行过程做断点调试的开发者。
通过课程的学习学习国密杂凑算法SM3的实现步骤及编码要领。
课程目录
* 01 七日成蝶课程体系说明(2020).mp4 20:53
* 02 (加餐)#pragma once与#ifndef.mp4 04:18
* 03 SM3算法说明.mp4 24:17
* 04 SM3新建项目.mp4 08:08
* 05 SM3常量与布尔函数.mp4 24:48
* 06 SM3置换函数.mp4 09:09
* 07 SM3填充函数原理说明.mp4 20:38
* 08 SM3消息扩展函数.mp4 12:19
* 09 SM3大端小端互转函数.mp4 07:44
* 10 SM3压缩函数.mp4 28:08
* 11 SM3消息填充函数.mp4 13:36
* 12 SM3_Init初始化函数.mp4 05:08
* 13 SM3_Update迭代更新函数.mp4 07:06
* 14 SM3_Final算法终结函数.mp4 06:37
* 15 SM3算法整体处理函数.mp4 06:50
* 16 SM3算法收官(上).mp4 13:48
* 17 SM3算法收官(下).mp4 05:45
* 18 结课测试






