硬汉嵌入式论坛

 找回密码
 立即注册
查看: 281|回复: 2
收起左侧

[Lua] H7-TOOL的LUA小程序教程第19期:AES ECB 加密和解密函数支持(2026-06-16)

[复制链接]

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123167
QQ
发表于 2026-6-9 00:16:57 | 显示全部楼层 |阅读模式
LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需要学习成本。

H7-TOOL的LUA API手册发布V1.1,方便API检索查阅
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=122382



现在TOOL端,各种加密解密算法都可以注册实现,根据客户的应用需求逐步增加。

应用场景
1、可以用来做固件加密
2、可以做关键数据加密

概念
AES-ECB 的全称是 AES + Electronic Codebook(电子密码本模式),它是 AES 加密中最简单的分组加密模式。
1、明文按 16 字节(128-bit,即 AES 的块大小)切分成多个块
2、长度不足 16 字节倍数的最后一个块,用 PKCS7 方式填充
3、每个块独立地用同一个 AES 密钥加密
4、所有加密后的块按顺序拼接,得到密文

LUA函数说明:

1、AES ECB加密

re, encryptdata = cmox_aes_ecb_encrypt(data, #data, key, #key)

返回值re,re = 1表示成功, re = 0表示失败
返回值encryptdata,返回加密数据串、类似\x11\x22\x33这种的转义字符串方式
第1个参数data,要加密的数据字符串, 每次最大4K字节
第2个参数#data,表示字符串长度
第3个参数key,表示密钥
第4个参数#key,表示密钥长度,支持128bit,16字节;192bit,24字节;256bit,32字节

2、AES ECB解密

re, decryptdata = cmox_aes_ecb_decrypt(encryptdata, #encryptdata, key, #key)

返回值re,re = 1表示成功, re = 0表示失败
返回值encryptdata,返回解密后原始数据串、类似\x11\x22\x33这种的转义字符串方式
第1个参数encryptdata,要解密的数据字符串,每次最大4K字节
第2个参数#data,表示字符串长度
第3个参数key,表示密钥
第4个参数#key,表示密钥长度,支持128bit,16字节;192bit,24字节;256bit,32字节

测试举例:

[Lua] 纯文本查看 复制代码
local key    = "0123456789abcdef"   -- 16字节
local data   = "0123456789abcdef"   -- 恰好16字节(无填充)

local re1, encryptdata = cmox_aes_ecb_encrypt(data, #data, key, #key)
local re2, decryptdata = cmox_aes_ecb_decrypt(encryptdata, #encryptdata, key, #key)

print("密钥:        " .. key)
print("明文:        " .. data)
if(re1 == 1) then
 print("密文(hex): ")
 for i = 1, #encryptdata do
    io.write(string.format("%02X ", encryptdata:byte(i)))
    if i % 16 == 0 then print() end
 end

else
print("加密失败")

end

if(re2 == 1) then
  print("解密还原: " .. decryptdata)
else
  print("解密还原失败")
end

print("加解密一致:  " .. tostring(pt == pt2))


123.png
回复

使用道具 举报

0

主题

142

回帖

142

积分

初级会员

积分
142
发表于 2026-6-11 09:21:23 | 显示全部楼层
支持
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123167
QQ
 楼主| 发表于 2026-6-16 11:16:14 | 显示全部楼层
更新完毕
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-6-25 03:59 , Processed in 0.300350 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表