很多人写 C++ 项目时碰到加密需求,第一反应是去搜一段 AES 代码复制进来,跑通了就交差。等到要换密钥长度、要对接别人给的密文、要在 Linux 上重新编译,问题就全冒出来了:填充方式对不上、IV 传递丢了、链接报错找不到符号。这门课解决的正是这类"会用但说不清"的缺口。
先确认你是不是真的需要它
如果你只是想在配置文件里存个密码、算个校验值,其实用不着系统学一遍。但下面几种情况,靠搜索拼凑代码会很吃力:一是需要自己控制加密流程,比如分块处理大文件、自定义密钥派生;二是要和别的系统交换密文,必须搞清楚对方用的是哪种模式、哪种填充;三是代码要同时跑在 Windows 和 Linux 上,编译和链接环节绕不开。这门课面向的就是这几类场景,重点不在于背算法公式,而在于把 OpenSSL 这个工业级库用明白。
课程实际覆盖的能力点
内容围绕三条线展开。第一条是对称加密,AES 是主角,会讲到分组、密钥长度、工作模式之间的区别,以及为什么同样的明文和密钥,换个模式结果就完全不同。第二条是非对称加密,RSA 的密钥生成、加解密和签名验证是重点,也会说明它为什么不适合直接加密大块数据。第三条是哈希与摘要,MD5、SHA 系列用来做完整性校验,课上会点出哪些已经不该再用于安全场景。
比算法本身更值得留意的是工程部分。资料里花了相当篇幅讲 OpenSSL 3.0:在 Windows 下配合 VS2019 建测试工程,在 Linux 下从源码编译再写测试程序。这两段看着像环境配置,实际是很多人的真实卡点——头文件路径、库的链接顺序、动态库和静态库的选择,任何一步错了都编译不过。后面的 BIO 接口解析也属于同类内容,它是 OpenSSL 的输入输出抽象层,理解它之后再看官方示例代码会顺畅很多。
配套练习该怎么用
每学一个算法,别只看演示,自己写一个最小可运行程序:生成密钥、加密一段字符串、再解密回来,确认结果一致。然后主动制造错误——改掉一个字节的密文、换错填充方式、用错误的密钥解密,观察程序是报错还是返回乱码。加密代码的调试体验和普通业务代码不一样,失败往往没有明确提示,这种"故意让它出错"的练习能帮你建立判断力。
跨平台那部分建议真机验证。在 Windows 上跑通的项目,搬到 Linux 重新编译一次,看看需要改哪些地方。如果手头只有一台机器,用虚拟机或 WSL 也能达到目的。
看完你应该能回答这几个问题
- 同样的 AES 密钥,CBC 和 ECB 模式加密同一段数据,结果差异从哪来?
- RSA 加密长度受什么限制,超长数据通常怎么处理?
- 哈希算法为什么不能用来加密,它和加密的本质区别是什么?
- 在 VS2019 里链接 OpenSSL 报"无法解析的外部符号",可能的原因有哪几类?
- BIO 在 OpenSSL 里承担什么角色,不用它行不行?
如果这些问题你现在答不上来,学完再回头对一遍。答不上来的那几条,就是你接下来要重点补的地方。
C++加密与解密
C++加密技术深度解析
编辑点评
系统学习C++加密算法,涵盖对称加密、非对称加密、哈希算法等,适合有加密需求或想深入了解加密原理的开发者。
⭐ 编辑推荐
本课程深入浅出地讲解C++加密与解密技术,通过实际案例演示,帮助学员掌握加密算法原理和应用。
课程亮点
课程目录
📁 配套资料
配套资料.exe [165.4 MB]
39.调用EVP接口完成算法初始化并解决no OPENSSLAp.mp4 [44.6 MB]
45.完成XSec封装加解密演示用AES加解密文件.mp4 [41.9 MB]
47.测试12类对称加密算法性能测试类的初始化和测试函数.mp4 [45.3 MB]
20.SHA2原理分析和比特币挖矿模拟原理分析.mp4 [17.6 MB]
46.国密SM4介绍添加到XSec封装中并修正DES算法的填充处理.mp4 [30.3 MB]
28.对称分组加密算法概述和ECB安全问题分析.mp4 [24.8 MB]
25.OpenSSL的HMAC接口演示消息认证.mp4 [45.5 MB]
2.OpenSSL30介绍和在windows下使用vs2019.mp4 [52.8 MB]
40.OpenSSLEVP接口完成3DES数据加密并测试PKCS.mp4 [31.0 MB]
12.比特币base58源码分析并抽取函数进行测试 单项散列消息.mp4 [64.3 MB]
10.OpenSSLBIO接口Base64解码并解决换行问题.mp4 [46.5 MB]
43.AES算法原理介绍.mp4 [15.4 MB]
50.RSA非对称加密原理介绍和密钥对生成原理分析.mp4 [20.1 MB]
3.使用vs2019创建第一个openssl30的测试项目.mp4 [23.3 MB]
18.使用MD5HashList验证文件完整性定时检测文件修改.mp4 [43.7 MB]
41.OpenSSLEVPCipher接口完成三重DES解密.mp4 [23.9 MB]
16.MD5算法原理详解.mp4 [27.4 MB]
31.DES算法原理介绍.mp4 [7.5 MB]
11.Base58_比特币钱包地址_算法分析.mp4 [24.1 MB]
4.linux下编译openssl30源码并编写测试项目.mp4 [38.6 MB]
38.三重DES算法介绍和OpenSSLEVPchipher接.mp4 [17.0 MB]
37.封装DESCBC加解密算法实现PKCS7填充.mp4 [39.0 MB]
29.通过XOR自己实现一个对称分组加密算法原理介绍.mp4 [7.2 MB]
21.基于SHA256模拟比特币挖矿代码演示.mp4 [19.3 MB]
32.OpenSSL的DES加密接口讲解和调用演示.mp4 [29.0 MB]
52.RSA_PKCS1_PADDING填充协议分析.mp4 [14.1 MB]
15.单项散列函数的应用场景详解和常用算法比特币挖矿消息认证码.mp4 [26.1 MB]
35.使用C封装DES算法实现初始化和密码填充策略.mp4 [42.7 MB]
44.封装C加密类支持AES和3DES完成初始化.mp4 [64.1 MB]
42.使用OpenSSLEVPCipher接口完成文件加解密.mp4 [60.7 MB]
23.使用OpenSSLEVP接口完成SHA3和国密SM3散列生.mp4 [49.5 MB]
13.单向散列函数章节任务说明.mp4 [5.4 MB]
34.使用DES的CBC算法替换ECB演示.mp4 [38.3 MB]
1.课程介绍.mp4 [43.0 MB]
24.消息认证码HMAC算法介绍和安全分析.mp4 [14.9 MB]
36.封装DES的ECB算法并实现了PKCS7数据填充协议.mp4 [35.8 MB]
14.什么是单向散列函数.mp4 [18.7 MB]
22.SHA3和国密SM3散列算法介绍.mp4 [16.8 MB]
65.完成椭圆曲线ECDSA的签名和验签EVP代码.mp4 [23.5 MB]
26.单向散列章节总结.mp4 [5.7 MB]
80.HTTPS协议交互分析和HTTP协议介绍.mp4 [19.5 MB]
73.TLS握手协议和记录协议详解.mp4 [13.9 MB]
70.非对称加密章节总结.mp4 [4.9 MB]
27.对称分组加密算法章节介绍和课程目标.mp4 [7.1 MB]
8.OpenSSLBIO接口解析.mp4 [10.9 MB]
69.完成椭圆曲线客户端与服务端交换秘钥示例代码.mp4 [36.8 MB]
82.课程总结.mp4 [6.2 MB]
67.封装ECDH类实现EVP生成椭圆曲线秘钥对.mp4 [45.2 MB]
9.OpenSSLBIO接口Base64编码.mp4 [33.5 MB]
72.SSLTLS协议介绍.mp4 [13.7 MB]
77.完成OpenSSL服务端SSL握手调用.mp4 [45.1 MB]
30.通过XOR自己实现一个对称分组加密算法代码演示.mp4 [58.0 MB]
19.比特币中Merkle可信树基于SHA1算法代码模拟.mp4 [62.9 MB]
68.获取公钥转为二进制用于发送并完成二进制转EVPPKEY.mp4 [44.9 MB]
81.HTTPS网站服务器代码演示.mp4 [23.6 MB]
74.基于OpenSSL证书和秘钥的制作.mp4 [35.2 MB]
7.Base64原理分析.mp4 [12.0 MB]
75.OpenSSL 加密SSLTLS通信接口分析.mp4 [25.8 MB]
33.演示操纵DES的ECB模式密文.mp4 [40.5 MB]
79.完成基于OpenSSL的安全加密通信并用抓包验证.mp4 [59.4 MB]
78.打印通信使用的协议和x509证书信息.mp4 [26.1 MB]
76.OpenSSL接口编程实例完成跨平台通信项目.mp4 [105.0 MB]
17.OpenSSL的MD5接口调用和源码分析.mp4 [28.7 MB]
63.使用EVP接口完成国密SM2椭圆曲线数据加密和解密.mp4 [19.1 MB]
54.完成RSA私钥解密数据.mp4 [33.4 MB]
5.base16编解码原理讲解.mp4 [22.8 MB]
64.椭圆曲线ECDSA签名和验签原理分析.mp4 [11.1 MB]
71.安全通信SSL_TLS_OPENSSL章节介绍.mp4 [5.1 MB]
49.对称分组加密算法章节总结.mp4 [7.3 MB]
59.签名和验签原理讲解并演示rsa的签名的代码.mp4 [34.7 MB]
56.获取EVPPKEY的参数列表并生成公钥和私钥pem文件.mp4 [31.4 MB]
61.椭圆曲线原理和加解密流程分析.mp4 [27.0 MB]
55.PEM文件格式介绍EVP接口生成RSA密钥对.mp4 [34.3 MB]
51.OpenSSL的RSA秘钥对生成代码详解.mp4 [46.8 MB]
62.打印支持曲线列表并选择椭圆曲线生成秘钥.mp4 [36.7 MB]
58.基于OpenSSL的EVP接口的RSA解密.mp4 [28.4 MB]
48.完成对称加密算法性能测试并将项目移植到Linux.mp4 [28.8 MB]
57.EVP的PKEY加密接口介绍完成基于EVP的RSA数据加.mp4 [58.2 MB]
6.从0开始C实现base16编码和解码.mp4 [68.5 MB]
53.完成RSA公钥加密数据,并处理填充数据.mp4 [39.2 MB]
60.基于EVP接口的RSA算法验签.mp4 [31.9 MB]
66.ecdh椭圆曲线秘钥交换协议分析.mp4 [9.9 MB]适合人群
- C++开发者
- 加密技术爱好者
- 网络安全从业者
学习收获
祝您学习愉快!
学有所成,前程似锦!





