getfromcode

夏老师 C++加密与解密

后端开发
课程简介

课程定位:填补 C++ 密码学工程落地的空白 大多数开发者学习密码学时,往往卡在两个极端:要么深陷数学理论的抽象推导,无法转化为代码;要么只会调用高层库的 API,却不懂底层原理与安全边界。这门课正是为了解决这一“知行断层”而设计。它不讲授通用的 C++ 语法,而是聚焦于密码学核心算法在工程层面的具体实现与应用。从 RSA、AES 到椭圆曲线,再到 SHA…

已有 0 人浏览 发布 2026-10-08 更新 2026-10-07

课程定位:填补 C++ 密码学工程落地的空白

大多数开发者学习密码学时,往往卡在两个极端:要么深陷数学理论的抽象推导,无法转化为代码;要么只会调用高层库的 API,却不懂底层原理与安全边界。这门课正是为了解决这一“知行断层”而设计。它不讲授通用的 C++ 语法,而是聚焦于密码学核心算法在工程层面的具体实现与应用。从 RSA、AES 到椭圆曲线,再到 SHA3 和国密 SM3,课程通过图示原理与 C++ 代码双轨并行的方式,帮助你建立从算法逻辑到接口调用的完整映射。

特别值得注意的是,课程深入剖析了 OpenSSL 的接口及其背后的安全知识,并提供了跨平台编译 OpenSSL 3.0 源码的实战指导。这意味着你不仅能“用”库,更能理解库的内部构造,从而在面对复杂的安全需求时,具备封装和应用密码学知识的能力,而不仅仅是一个 API 搬运工。

实战目标:从零构建简化版 HTTPS 服务器

本课程的终极落地点在于一个可运行的工程项目:开发一个简化的安全套接字(HTTPS)Web 服务器。要实现这个目标,你需要跨越几个关键技术节点:首先,必须透彻理解 TLS/SSL 握手协议及证书认证机制,否则无法处理安全的网络连接;其次,需要掌握 Base64、Base58(如比特币钱包地址编码)以及单向散列算法(MD5、SHA1、SHA2、Merkle 树)的实际应用场景,这些是构建安全数据结构和验证体系的基础。

此外,课程还涵盖了区块链中的核心密码学技术,这将拓宽你在分布式安全领域的视野。通过跟随课程代码演示,你将学习到如何将上述分散的知识点串联起来,形成一个完整的通信安全闭环。最终成果不仅是一个服务器原型,更是一套可复用的密码学封装模块,适合用于后续更复杂的后端安全开发。

学习路径与资料配合建议

对于基础要求,学习者需要具备扎实的 C++ 编程功底,熟悉基本的网络编程概念(如 Socket),并了解 HTTP 协议的基础知识。如果你是后端开发方向,这门课是进入安全领域的高性价比跳板;如果你是学生或转行者,建议先补强 C++ 内存管理和网络编程后再入场,以免在代码调试阶段受阻。

建议的学习顺序如下:第一阶段,重点攻克基础哈希算法(MD5/SHA)和对称/非对称加密原理,配合课程中的图示理解算法流程;第二阶段,深入学习 OpenSSL 接口使用,并动手完成跨平台编译环节,这是工程化的关键一步;第三阶段,结合证书知识,开始着手 HTTPS 服务器的架构设计;最后,通过完整运行和调试服务器代码,巩固对整个密码学应用链路的理解。资料包中的代码并非简单的照抄对象,而应作为对照实践的基准,建议边看视频边手写代码,并在关键节点添加注释,以确保真正内化为自己的工程能力。

课程介绍

下.png (179.67 KB, 下载次数: 0) 2024-6-2 09:40 上传 你将会学到: 理解密码学涉及到的各种算法,理解密码学各种算法的应用场景,比如AES和椭圆曲线的应用场景,理解openssl的各种密码学接口,并理解接口背后的安全知识,能够封装应用密码学知识,理解区块链中应用到的密码学技术,跨平台编译OpenSSL3.0 源码并能将其应用到项目; 了解https协议,并能编写应用;理解证书的作用和证书的认证; 课程目标: 能够学习密码学知识,能够进入到安全领域 能够开发出一个简化的安全套接字https协议的web服务器 课程简介 课程包含密码学和区块链的核心技术,从图示原理讲解,到工程代码演示。内容包括Base64,Base58(比特币钱包地址),单向散列hash值(消息指纹)的MD5,SHA1,SHA2(挖矿算法),SHA3,国密散列算法SM3和Merkle可信树(比

课程目录

下.png (179.67 KB, 下载次数: 0) 2024-6-2 09:40 上传 你将会学到: 理解 源码并能将其应用到项目; 了解https协议,并能编写应用;理解证书的作用和证书的认证; 课程目标: 能够学习 能够开发出一个简化的安全套接字https协议的web服务器 课程简介 课程包含 随着”新基建“的推行,其中涉及到的工业互联网、物联网、人工智能、云计算、区块链,无一不是与安全相关,所有数据的存储、传输、签名认证都涉及到 因为 课程特点 面向工程应用 市面上的一些 从零实现部分算法 课程中实现了base16编解码 ,XOR对称加解密算法,PKCS7 pading数据填充算法,通过对一些简单算法的实现,从而加深对 理论与实践结合 课程如果只是讲代码,同学并不能理解接口背后的原理,在项目设计中就会留下隐患,出现错误也不容易排查出问题。 如果只讲理论,比如对 代码现场打出 代码不放在ppt而是现场打出,更好的让学员理解代码编写的逻辑,老师现场敲出代码正是展示出了工程项目的思考,每个步骤为什么要这么做,考虑了哪些异常, 易学不枯燥 课程为了确保大部分人研发者都学得会,理解算法原理(才能真正理解算法特性),学习工程应用(接口调用,但不局限接口调用,理解接口背后的机制,并能解决工程中会出现的问题),阅读算法源码但不实现 课程用到的技术 课程主要演示基于 VS2019 C++,部分演示基于ubuntu 18.04 GCC makefile 如果没有装linux系统,对本课程的学习也没有影响 课程中的OpenSSL基于**的3.0版本,如果是openss 1.1.1版本也支持,再低的版本不支持国密算法。 课程目录: 1-1 课程介绍 1-2 OpenSSL3.0介绍和在windows下使用vs2019 1-3 使用vs2019创建第一个openssl3.0的测试项目 1-4 linux下编译openssl3.0源码并编写测试项目 2-1 base16编解码原理讲解 2-2 从0开始C++实现base16编码和解码 2-3 Base64原理分析 2-4 OpenSSL_BIO接口解析 2-5 OpenSSL_BIO接口Base64编码 2-6 OpenSSL_BIO接口Base64解码并解决换行问题 2-7 Base58_比特币钱包地址_算法分析 2-8 比特币base58源码分析并抽取函数进行测试 单项散列_消息 2使用vs2019创建第一个openssl3.0的测试项目.zip 3-1 单向散列函数章节任务说明 3-10 SHA3和国密SM3散列算法介绍 3-11 使用OpenSSL_EVP接口完成SHA3和国密SM3散列生 3-12 消息认证码HMAC算法介绍和安全分析 3-13 OpenSSL的HMAC接口演示消息认证 3-14 单向散列章节总结 3-2 什么是单向散列函数 3-3 单项散列函数的应用场景详解和常用算法_比特币挖矿_消息认证码 3-4 MD5算法原理详解 3-5 OpenSSL的MD5接口调用和源码分析 3-6 使用MD5_HashList验证文件完整性_定时检测文件修改 3-7 比特币中Merkle可信树基于SHA1算法代码模拟 3-8 SHA2原理分析和比特币挖矿模拟原理分析 3-9 基于SHA256模拟比特币挖矿代码演示 3linux下编译openssl3.0源码并编写测试项目.zip 4-1 对称分组加密算法章节介绍和课程目标 4-10 封装DES的ECB算法并实现了PKCS7数据填充协议 4-11 封装DES_CBC加解密算法实现PKCS7填充 4-12 三重DES算法介绍和OpenSSL_EVP_chipher接 4-13 调用EVP接口完成算法初始化并解决no OPENSSL_Ap 4-14 OpenSSL_EVP接口完成3DES数据加密并测试PKCS 4-15 OpenSSL_EVP_Cipher接口完成三重DES解密 4-16 使用OpenSSL_EVP_Cipher接口完成文件加解密 4-17 AES算法原理介绍 4-18 封装C++加密类支持AES和3DES完成初始化 4-19 完成XSec封装加解密演示用AES加解密文件 4-2 对称分组加密算法概述和ECB安全问题分析 4-20 国密SM4介绍添加到XSec封装中并修正DES算法的填充处理 4-21 测试12类对称加密算法性能测试类的初始化和测试函数 4-22 完成对称加密算法性能测试并将项目移植到Linux 4-23 对称分组加密算法章节总结 4-3 通过XOR自己实现一个对称分组加密算法原理介绍 4-4 通过XOR自己实现一个对称分组加密算法代码演示 4-5 DES算法原理介绍 4-6 OpenSSL的DES加密接口讲解和调用演示 4-7 演示操纵DES的ECB模式密文 4-8 使用DES的CBC算法替换ECB演示 4-9 使用C++封装DES算法实现初始化和 5-1 RSA非对称加密原理介绍和密钥对生成原理分析 5-10 签名和验签原理讲解并演示rsa的签名的代码 5-11 基于EVP接口的RSA算法验签 5-12 椭圆曲线原理和加解密流程分析 5-13 打印支持曲线列表并选择椭圆曲线生成秘钥 5-14 使用EVP接口完成国密SM2椭圆曲线数据加密和解密 5-15 椭圆曲线ECDSA签名和验签原理分析 5-16 完成椭圆曲线ECDSA的签名和验签EVP代码 5-17 ecdh椭圆曲线秘钥交换协议分析 5-18 封装ECDH类实现EVP生成椭圆曲线秘钥对 5-19 获取公钥转为二进制用于发送并完成二进制转EVP_PKEY 5-2 OpenSSL的RSA秘钥对生成代码详解 5-20 完成椭圆曲线客户端与服务端交换秘钥示例代码 5-21 非对称加密章节总结 5-3 RSA_PKCS1_PADDING填充协议分析 5-4 完成RSA公钥加密数据,并处理填充数据 5-5 完成RSA私钥解密数据 5-6 PEM文件格式介绍EVP接口生成RSA密钥对 5-6 PEM文件格式介绍EVP接口生成RSA密钥对 5-7 获取EVP_PKEY的参数列表并生成公钥和私钥pem文件 5-8 EVP的PKEY加密接口介绍完成基于EVP的RSA数据加 5-9 基于OpenSSL的EVP接口的RSA解密 5从0开始C 实现base16编码和解码.zip 6-1 安全通信SSL_TLS_OPENSSL章节介绍 6-10 HTTPS协议交互分析和HTTP协议介绍 6-11 HTTPS网站服务器代码演示 6-12 课程总结 6-2 SSL_TLS协议介绍 6-3 TLS握手协议和记录协议详解 6-4 基于OpenSSL证书和秘钥的制作 6-5 OpenSSL 加密SSL_TLS通信接口分析 6-6 OpenSSL接口编程实例完成跨平台通信项目 6-7 完成OpenSSL服务端SSL握手调用 6-8 打印通信使用的协议和x509证书信息 6-9 完成基于OpenSSL的安全加密通信并用抓包验证 文件名.bat 文件名.txt 资料 资料\11比特币base58源码分析并抽取函数进行测试.zip 资料\16OpenSSL的MD5接口调用和源码分析.zip 资料\17使用MD5_HashList验证文件完整性_定时检测文件修改.zip 资料\18比特币中Merkle可信树基于SHA1算法代码模拟.zip 资料\20基于SHA256模拟比特币挖矿代码演示.zip 资料\21SHA3和国密SM3散列算法介绍.zip 资料\22使用OpenSSL_EVP接口完成SHA3和国密SM3散列生成.zip 资料\29通过XOR自己实现一个对称分组加密算法代码演示.zip 资料\31OpenSSL的DES加密接口讲解和调用演示.zip 资料\33使用DES的CBC算法替换ECB演示.zip 资料\34使用C 封装DES算法实现初始化和 资料\35封装DES的ECB算法并实现了PKCS7数据填充协议.zip 资料\36封装DES_CBC加解密算法实现PKCS7填充.zip 资料\38调用EVP接口完成算法初始化并解决noOPENSSL_Applink问题.zip 资料\39OpenSSL_EVP接口完成3DES数据加密并测试PKCS7填充设置.zip 资料\40OpenSSL_EVP_Cipher接口完成三重DES解密.zip 资料\41使用OpenSSL_EVP_Cipher接口完成文件加解密.zip 资料\43封装C 加密类支持AES和3DES完成初始化.zip 资料\44完成XSec封装加解密演示用AES加解密文件.zip 资料\45国密SM4介绍添加到XSec封装中并修正DES算法的填充处理.zip 资料\46测试12类对称加密算法性能测试类的初始化和测试函数.zip 资料\47完成对称加密算法性能测试并将项目移植到Linux.zip 资料\53完成RSA公钥加密数据,并处理填充数据.zip 资料\54完成RSA私钥解密数据.zip 资料\55PEM文件格式介绍EVP接口生成RSA密钥对.zip 资料\56获取EVP_PKEY的参数列表并生成公钥和私钥pem文件.zip 资料\57EVP的PKEY加密接口介绍完成基于EVP的RSA数据加密.zip 资料\60基于EVP接口的RSA算法验签.zip 资料\61椭圆曲线原理和加解密流程分析.zip 资料\62打印支持曲线列表并选择椭圆曲线生成秘钥.zip 资料\63使用EVP接口完成国密SM2椭圆曲线数据加密和解密.zip 资料\65完成椭圆曲线ECDSA的签名和验签EVP代码.zip 资料\74基于OpenSSL证书和秘钥的制作.zip 资料\75OpenSSL加密SSL_TLS通信接口分析.zip 资料\76OpenSSL接口编程实例完成跨平台通信项目.zip 资料\77完成OpenSSL服务端SSL握手调用.zip 资料\78打印通信使用的协议和x509证书信息.zip 资料\79完成基于OpenSSL的安全加密通信并用抓包验证.zip 资料\81HTTPS网站服务器代码演示.zip 资料\9OpenSSL_BIO接口Base64解码并解决换行问题.zip 资料\课程PPT.zip
课程购买
课程价格
金币29
290金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。