# AES加密模块
本模块基于\[RFC 3962]和《密码编码学与网络安全》实现,\[RFC 3962]官方文档请参见: https://tools.ietf.org/html/rfc3962 。
## 1. 引用头文件"AES.h"
#include "AES.h"
## 2. 创建一个AES对象
AES aes=AES();
## 3. 使用key方法设置AES加密的密钥
> 1. key方法的第一个参数为32位十六进制或者128位二进制密钥。
> 2. 第二个参数的"0x"表示密钥为十六进制,"0b"表示密钥为二进制。
string key="0f1571c947d9e8590cb7add6af7f6798";
aes.key(key,"0x");
## 4. 使用encrypt方法进行AES加密
> 1. encrypt方法的第一个参数为32位十六进制或者128位二进制明文。
> 2. 第二个参数的"0x"表示输入明文为十六进制,"0b"表示输入的明文为二进制。
> 3. 第三个参数的"0x"表示加密后的密文以十六进制返回,"0b"表示密文以二进制返回。
string plain="0123456789abcdeffedcba9876543210";
string enpt=aes.encrypt(plain,"0x","0x");
## 5. 使用decrypt方法进行AES解密
> 1. decrypt方法的第一个参数为32位十六进制或者128位二进制密文。
> 2. 第二个参数的"0x"表示输入密文为十六进制,"0b"表示输入的密文为二进制。
> 3. 第三个参数的"0x"表示解密后的明文以十六进制返回,"0b"表示明文以二进制返回。
string enpt="0123456789abcdeffedcba9876543210";
string plain=aes.decrypt(enpt,"0x","0x");
## 附注:
> 1. example.cpp中提供了一个使用AES模块加密和解密的完整示例。AES example.txt中提供了一个AES加密的"明文-密文-密钥"实例。
> 2. 本模块的明文/密文/密钥输入必须是32位长的十六进制或者128位长的二进制,其他如字符串需要首先转化为十六进制或者二进制再输入。
> 3. 若需要进行任意长度的字符串加密,请右转至本库的Pattern模块:
该模块整合了DES,AES两种分组密码,支持任意长度的字符串输入,并且支持以ECB, CBC, CFB, OFB, CTR五种工作模式进行加密和解密。
信息安全基础课程实验作业-AES分组加密模块-内含源码和说明书(可自己修改).zip
版权申诉
5星 · 超过95%的资源 71 浏览量
2024-05-21
23:35:35
上传
评论
收藏 8KB ZIP 举报
小码蚁.
- 粉丝: 2584
- 资源: 4344
最新资源
- 数据分析实战3-豆瓣top250数据分析和可视化
- tomcat安装及配置教程.md
- tomcat安装及配置教程.md
- 51单片机贴片心形灯原理图PCB程序 亚克力外壳.dwg资料
- 户型为单家独院式图纸编号D068-三层-20.60&13.40米-施工图.dwg
- 农村小别墅图纸编号D067-三层-10.00&11.50米- 施工图.dwg
- 三层独栋别墅图纸编号D066-三层-12.00&12.00米- 施工图.dwg
- 农村小别墅图纸编号D065-三层-14.40&18.55米-施工图.dwg
- 基于YOLOv8检测高铁吊弦缺陷实现的系统的Python源码+文档说明+训练源文件+模型.zip
- 三层农村小别墅图纸编号D064-三层-13.80&22.20米-施工图.dwg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈