Air780E软件指南:通用加解密函数(crypto),技术篇一定要看!

在实际应用中,开发者应根据具体需求选择合适的加密算法和密钥长度,并正确使用crypto函数提供的API接口。本文将深入探讨Air780E中的crypto函数,帮助您更好地理解并利用这一重要功能。

1、加解密概述

加解密算法是保证数据安全的基础技术,无论是在数据传输、存储,还是用户身份验证中,都起着至关重要的作用.随着互联网的发展和信息安全威胁的增加,了解并掌握常用的加解密算法已经成为开发者和安全从业者的必修课.

常见的15种加密解密算法分别是:

散列哈希[MD5、SHA1、CRC32],对称[DES,3DES(TDEA、TripleDES),AES,Blowfish,RC4、RC5,IDEA],Base64、Rabbit、Escape。

三种分类:

1.1 对称加密

对称加密是指加密和解密使用同一个密钥的加密方法.由于加密和解密过程中的密钥相同,因此需要在通信双方之间安全地共享密钥.对称加密的速度较快,适合用于大量数据的加密.

1.2 非对称加密

非对称加密算法采用一对密钥:公钥和私钥.公钥用于加密,私钥用于解密.由于加密和解密使用不同的密钥,非对称加密算法解决了密钥分发的问题,是当前加密系统中安全性最高的加密技术之一.

1.3 Hash算法

这是一种不可逆的算法,它常用于验证数据的完整性。

2、请输入标题

本文章通过Air780的核心板烧录LuatOS示例代码,来演示有关加解密的各种API的功能。

最新源码下载:

https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/crypto

API的具体用法,读者可以参考本文中的"五、API说明"。

3、硬件准备

3.1 Air780E核心板

使用Air780E核心板

3.2 SIM卡

中国大陆环境下,可以上网的sim卡,一般来说,使用移动,电信,联通的物联网卡或者手机卡都行。

3.3 PC电脑

WINDOWS系统。

3.4 数据通信线

带TYPE-C口的USB数据线。

4、软件环境

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-master\demo\crypto\main.lua,如图:


5、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()

获取当前固件支持的ciphersuites列表

参数

返回值

例子


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,inReversemoutReverse)

计算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、功能验证

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右上角的“项目管理测试”按钮,如下图所示:

这时会弹出项目管理和烧录管理的对话框,可以新建一个项目,如下图:

开始烧录

选择780E板子对应的底层core和刚改的main.lua脚本文件.下载到板子中.

点击下载后,我们需要进入boot模式才能正常下载.

如果没进入boot模式会出现下图情况:

进入boot模式下载,如图:


6.2 例程

本库有专属demo,点此链接查看crypto的demo例子


6.3 对应log


7、总结

通过本章内容的学习,你可以学习到有关加解密算法的函数,例如:crypto.md5(str)、crypto.hmac_md5(str,key)、crypto.hmac_sha1(str,key)等等函数。

更多内容,敬请关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值