本帖最后由 爱飞的猫 于 2023-10-10 09:18 编辑
支持的 AES 模式:AES-{128,192,256}-{ECB,CBC,CTR} ,共 9 种。
不使用系统自带的 wincrypt 接口,其中软件实现移植(编译)自 tiny-AES-c 代码,用到 AES-NI 指令集的代码则是移植自英特尔的 AES-NI 指令集白皮书。
内置了个 DEMO 实例程序来调用里面的接口,可以参考里面的代码来使用。
同时提供了高阶用法的接口,即通过 AES 操作句柄来进行操作。
易语言 AES 加解密支持模块
~~~~~~~~~~~~~~~~~~~~~~~~~
版本:
v1.1_2023.1010-R01
说明:
AES 软件实现基于 kokke/tiny-AES-c,进行了一些魔改。
AES-NI 实现基于英特尔公开的 AES 指令集白皮书修改而来。
模块本体只依赖核心支持库,无需第三方支持库即可运行。
从源码运行或编译[示例程序]需要安装有[黑月编译环境]。
测试于 易语言 5.1 与 易语言 5.93,稳定运行。
只使用 AES 模块不需要[黑月编译环境]。
文件清单:
- aes.ec 编译好的 AES 加解密模块。
- AES_DEMO.e 示例程序,正确编译需要[黑月编译环境]支持。
- AES_DEMO.rc 黑月编译器的资源文件
- aes_demo.exe 使用黑月编译器编译后的示例程序。
- res/ 该目录包含示例程序的资源文件。
- 截图.png 示例程序的运行截图。
- 说明.txt 你正在阅读的这个文档。
- 模块_aes_测试.e 开发阶段用来测试 AES 准确性的代码。
- tiny-AES-c.zip 该压缩文件包含 v1.0 时魔改的 tiny-AES-c 代码。
原始代码来自 https://github.com/kokke/tiny-AES-c/
虽然授权协议不要求公开修改后的代码,但还是附上好了。
使用 i686-w64-mingw32-g++ 编译即可。
新版本换汤不换药,只稍微改了下接口,就不提供了。
- checksums.sha512 该压缩包内所有文件的校验信息。
更新记录:
v1.1-2023.1010-R01 更新了接口:
- 现在在初始化阶段指定加密或解密方案。
- 旧的 [xxx_加密] 与 [xxx_解密] 方法/函数均替换为 [处理数据]。
v1.0-2023.1003-R01 初版发布,没有什么好说的。
碎碎念:
胶水写起来可真麻烦,然后易语言生成的机器码质量也太差了…
DEMO 代码还附带了两个大部分由汇编组成的 十六进制 和 字节集 互转的代码。
爱飞的猫
于 2023 冬
※ 执行压缩包内的示例程序不需要黑月环境,编译源码需要。
易语言 AES 模块 v2023.1010-R01.7z
(84.6 KB, 下载次数: 335)
完美兼容 易语言 5.93:
第二页是模块导出信息,有兴趣可以看看设计的接口。
|