电子说
本次我将讲解低功耗4G模组Air780E的LuatOS开发,关于通用加解密函数(crypto)教程分享给大家。我会从加解密概述、演示功能概述、硬件准备、软件环境、API 说明等全面讲述…
一、加解密概述
加解密算法是保证数据安全的基础技术,无论是在数据传输、存储,还是用户身份验证中,都起着至关重要的作用。随着互联网的发展和信息安全威胁的增加,了解并掌握常用的加解密算法已经成为开发者和安全从业者的必修课。
常见的15种加密解密算法分别是:散列哈希[MD5、SHA1、CRC32],对称[DES,3DES(TDEA、Triple DES),AES、,Blowfish,RC4、RC5,IDEA],Base64、Rabbit、Escape。
【三种分类】
1、对称加密:
对称加密是指加密和解密使用同一个密钥的加密方法.由于加密和解密过程中的密钥相同,因此需要在通信双方之间安全地共享密钥.对称加密的速度较快,适合用于大量数据的加密
2、非对称加密:
非对称加密算法采用一对密钥:公钥和私钥.公钥用于加密,私钥用于解密.由于加密和解密使用不同的密钥,非对称加密算法解决了密钥分发的问题,是当前加密系统中安全性最高的加密技术之一.
3、Hash算法:
这是一种不可逆的算法,它常用于验证数据的完整性
二、演示功能概述
本文章通过 Air780 的核心板烧录 LuatOS 示例代码,来演示有关加解密的各种 API 的功能。
https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/crypto
(复制链接查看 crypto 的 demo 例子)
API 的具体用法,读者可以参考本文中的"五、API 说明"。
三、硬件准备
3.1 Air780E 核心板
使用Air780E核心板,如下图所示:
此核心板的详细使用说明参考:
https://docs.openluat.com/air780e/product/
Air780E产品手册中的 《开发板Core_Air780E使用说明》,写这篇文章时最新版本的使用说明为:《开发板Core_Air780E使用说明》;若在使用过程中遇到任何问题,可以直接参考这份使用说明文档。
3.2 SIM 卡
中国大陆环境下,可以上网的sim卡,一般来说,使用移动、电信、联通的物联网卡或者手机卡都行。
3.3 PC 电脑
请准备一台配备 USB 接口且能够正常上网的电脑。
电脑操作系统为:
WIN10以及以上版本的WINDOWS系统。
3.4 数据通信线
带TYPE-C口的USB数据线.
四、软件环境
4.1 Luatools 工具
要想烧录 LuatOS 到 4G 模组中,需要用到的调试工具:Luatools
详细使用说明参考:
Luatools工具使用说明:
https://docs.openluat.com/Luatools/
Luatools 工具集具备以下几大核心功能:
一键获取最新固件:自动连接服务器,轻松下载最新的模组固件.
固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中.
串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能.
串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求.
Luatools下载之后,新建一个命名为 "Luatools" 的文件夹,将下载的Luatools_v3.exe拷贝或移动到新建的Luatools文件夹内,点击 Luatools_v3.exe 即可运行。
4.2 准备需要烧录的代码
首先要说明一点:脚本代码, 要和固件的soc文件一起烧录。
4.2.1 烧录的底层固件文件
底层 core 下载地址:
LuatOS 固件版本下载地址:
https://docs.openluat.com/air780e/luatos/firmware/
Air780E 的底层固件在 Luatools 解压后目录的:
LuatOS-SoC_V1112_EC618_FULL.soc
4.2.2 烧录的脚本代码
首先要下载 Air780 的 LuatOS 示例代码到一个合适的项目目录,
示例代码网站:
https://gitee.com/openLuat/LuatOS-Air780E
下载流程参考下图:
下载的文件解压,找到 LuatOS-Air780E-masterdemocryptomain.lua,如图:
五、API 说明
5.1 crypto.md5(str)
计算 md5 值
参数
返回值
例子
5.2 crypto.hmac_md5(str, key)
计算 hmac_md5 值
参数
返回值
例子
5.3 crypto.sha1(str)
计算 sha1 值
参数
返回值
例子
5.4 crypto.hmac_sha1(str, key)
计算 hmac_sha1 值
参数
返回值
例子
5.5 crypto.sha256(str)
计算 sha256 值
参数
返回值
例子
5.6 crypto.hmac_sha256(str, key)
计算 hmac_sha256 值
参数
返回值
例子
5.7 crypto.sha512(str)
计算 sha512 值
参数
返回值
例子
5.8 crypto.hmac_sha512(str, key)
计算 hmac_sha512 值
参数
返回值
例子
5.9 crypto.base64_encode(data)
将数据进行 base64 编码
参数
返回值
例子
5.10 crypto.base64_decode(data)
将数据进行 base64 解码
参数
返回值
例子
5.11 crypto.cipher_list()
获取当前固件支持的 cipher 列表
参数
无
返回值
例子
5.12 crypto.cipher_suites()
获取当前固件支持的 cipher suites 列表
参数
无
返回值
例子
5.13 crypto.cipher_encrypt(type, padding, str, key, iv)
对称加密
参数
返回值
例子
5.14 crypto.cipher_decrypt(type, padding, str, key, iv)
对称解密
参数
返回值
例子
5.15 crypto.crc16(method, data, poly, initial, finally, inReversem outReverse)
计算 CRC16
参数
返回值
例子
5.16 crypto.crc16_modbus(data, start)
直接计算 modbus 的 crc16 值
参数
返回值
例子
5.17 crypto.crc32(data)
计算 crc32 值
参数
返回值
例子
5.18 crypto.crc8(data, poly, start, revert)
计算 crc8 值
参数
返回值
例子
5.19 crypto.crc7(data, poly, start)
计算 crc7 值
参数
返回值
例子
5.20 crypto.checksum(data, mode)
计算 checksum 校验和
参数
返回值
例子
5.21 crypto.trng(len)
生成真随机数
参数
返回值
例子
5.22 crypto.totp(secret,time)
计算 TOTP 动态密码的结果
参数
返回值
例子
5.23 crypto.md_file(tp, path, hmac)
计算文件的 hash 值(md5/sha1/sha256 及 hmac 形式)
参数
返回值
例子
5.24 crypto.md(tp, data, hmac)
计算数据的 hash 值(md5/sha1/sha256 及 hmac 形式)
参数
返回值
例子
5.25 crypto.hash_init(tp)
创建流式 hash 用的 stream
参数
返回值
例子
5.26 crypto.hash_update(stream, data)
流式 hash 更新数据
参数
返回值
无
例子
5.27 crypto.hash_finish(stream)
获取流式 hash 校验值并释放创建的 stream
参数
返回值
例子
六、功能验证
6.1 烧录固件
6.1.1 正确连接电脑和 4G 模组电路板
使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线.
6.1.2 识别 4G 模组的 BOOT 引脚
在下载之前,要用模组的 BOOT 引脚触发下载, 也就是说,要把 4G 模组的 BOOT 引脚拉到 1.8v,或者直接把 BOOT 引脚和 VDD_EXT 引脚相连.我们要在按下 BOOT 按键时让模块开机,就可以进入下载模式了.
具体到 Air780E 开发板:
1、当我们模块没开机时,按着 BOOT 键然后长按 POW 开机.
2、当我们模块开机时,按着 BOOT 键然后点按重启键即可.
6.1.3 识别电脑的正确端口
判断是否进入 BOOT 模式:模块上电,此时在电脑的设备管理器中,查看串口设备, 会出现一个端口表示进入了 BOOT 下载模式,如下图所示:
6.1.4 用 Luatools 工具烧录
新建项目
首先,确保你的 Luatools 的版本,大于等于 3.0.6 版本。
在 Luatools 的左上角上有版本显示的,如图所示:
Luatools 版本没问题的话, 就点击 Luatools 右上角的“项目管理测试”按钮,如下图所示:
这时会弹出项目管理和烧录管理的对话框,可以新建一个项目,如下图:
开始烧录
选择 Air780E 板子对应的底层 core 和刚改的 main.lua 脚本文件.下载到板子中.
点击下载后,我们需要进入 BOOT 模式才能正常下载.
如果没进入 BOOT 模式会出现下图情况:
进入 BOOT 模式下载,如图:
6.2 例程
参考以下示例,本库有专属 demo,复制链接查看 crypto 的 demo 例子:
(https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/crypto)
6.3 对应 log
分享完毕
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !