[密码学] C++ 实现 AES128 加密算法
2024-10-18 18:13:35
概述
清理邮箱的时候翻出来的。
很久以前写的,理解加密算法用的,当时记得是还撸了两天晚上撸出来的代码,放上来留个纪念好啦。
补上Tutorial,就当考古吧。
写代码时候毕竟年轻,问题也不少,但现在这东西还能用!
文件link,utf-8编码。
编译
使用gcc编译(g++也可以)即可,需要头文件为:
#include <cstdio>
#include <cstring>
#include <cstdlib>
系统里一般都有的,命令: gcc AES-128.cpp -o aes128
。
加密操作
先指定密钥,使用 -k
参数(理论上你可以使用任何大于16Byte的文件作为密钥,反正只读前128bit):
先输入:
./aes128 -k key.txt
然后使用 -e
选择需要加密的文件:
./aes128 -k key.txt -e file2E.data
输出结果为result.aes
。
解密操作
还是用-k
指定密钥文件,-d
用于解密
./aes128 -k key.txt -d file2D.data
结果还是为result.aes
。
字符串
密钥指定都一样,使用-s
参数:
同时还会自动保存到result.aes
文件中。
解密字符串的话,还是用文件的方式解密哈。
演示
加解密演示视频:
其他问题可以问我。
代码写其实不好,高手指正哈。
最新文章
- Smarty的基本使用与总结
- Java–cvc-complex-type.4:Attribut ‘version’ must appear on element ‘web-app’
- C#面向对象设计模式纵横谈——5.Factory Method 工厂方法模式(创建型模式)
- Query Designer:Condition,根据KeyFigure值来过滤数据
- CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
- 电影发烧友必备知识-720P、1080P、4K的区别
- Basic认证
- sqlite中的自增主键
- 把docker当做绿色打包工具
- 基于catalog 创建RMAN存储脚本
- Oracle SQL的硬解析、软解析、软软解析
- 基于Ogre的DeferredShading(延迟渲染)的实现以及应用
- 建造者模式(Builder Pattern)
- 规范javascript书写
- 关于vs2013error C4996: &#39;strcmpi&#39;: The POSIX name for this item is deprecated.的错误解决办法!
- AspNetPager实现真分页+多种样式
- 进一步探索:Windows Azure 网站中解锁的配置选项
- Class类 获取Class对象
- 【asp.net】asp.net实现上传Excel文件并读取数据
- Surface Pro 4 系统优化全教程及QA