1 4G模组Air780E的LuatOS开发:关于通用加解密函数(crypto)教程!-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

4G模组Air780E的LuatOS开发:关于通用加解密函数(crypto)教程!

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-12-01 15:50 次阅读

本次我将讲解低功耗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核心板,如下图所示:

wKgZPGdJoLmAU-NDAAL1A1GQkX0933.png

此核心板的详细使用说明参考:
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/

wKgZO2dJoOGANZq9AAIKpdALvdE769.png

Air780E 的底层固件在 Luatools 解压后目录的:
LuatOS-SoC_V1112_EC618_FULL.soc

wKgZO2dJoO6ATgclAAGZ2kHLDmE213.png

4.2.2烧录的脚本代码

首先要下载 Air780 的 LuatOS 示例代码到一个合适的项目目录,
示例代码网站:
https://gitee.com/openLuat/LuatOS-Air780E

下载流程参考下图:

wKgZPGdJoP-AN0-xAAcdA9HrIY0198.png

下载的文件解压,找到 LuatOS-Air780E-masterdemocryptomain.lua,如图:

wKgZO2dJoQ6AauNtAAE6Wf7fNLE615.png

五、API 说明

5.1 crypto.md5(str)

计算 md5 值

参数

wKgZPGdJoSaANEXBAAA7c9b0lRI108.png

返回值

wKgZO2dJoTCAJU0MAABLEmuzuKs801.png

例子

wKgZPGdJoTuAb-rFAACo2Yu3x7I597.png

5.2 crypto.hmac_md5(str, key)

计算 hmac_md5 值

参数

wKgZPGdJoUeAc0XTAABO8HsJN2g622.png

返回值

wKgZO2dJoVOAc2ORAABQpWOTsas721.png

例子

wKgZO2dJoWCAToDQAADllf2cegE233.png

5.3 crypto.sha1(str)

计算 sha1 值

参数

wKgZO2dJoWqADkUfAAA7sEmX3uU185.png

返回值

wKgZO2dJoXSAYN15AABNaCcJ6FE763.png

例子

wKgZPGdJoYSANP7wAACt_0Plisc417.png

5.4 crypto.hmac_sha1(str, key)

计算 hmac_sha1 值

参数

wKgZO2dJoY6AVmQvAABQxlI_rFw943.png

返回值

wKgZPGdJoZiAG1cLAABU9Lx84WI052.png

例子

wKgZPGdJoaOAbLkLAADpYDgqzxY505.png

5.5 crypto.sha256(str)

计算 sha256 值

参数

wKgZPGdJoa2AIY9SAAA9rS3bP6U932.png

返回值

wKgZPGdJobiAH0mnAABRarqaPJg043.png

例子

wKgZPGdJocSAPjnAAADAjoPutKE242.png

5.6 crypto.hmac_sha256(str, key)

计算 hmac_sha256 值

参数

wKgZO2dJoc-AVCyUAABQ2hhhtR0389.png

返回值

wKgZPGdJodmAGlaNAABRxIn773E686.png

例子

wKgZO2dJoeOAbNnAAAEALMCFwSQ728.png

5.7 crypto.sha512(str)

计算 sha512 值

参数

wKgZPGdJoeyAAulTAAA-L5C90-g962.png

返回值

wKgZPGdJofeANTavAABMZKTjHXk182.png

例子

wKgZO2dJogKARQ0ZAAC9OJmwOFY720.png

5.8 crypto.hmac_sha512(str, key)

计算 hmac_sha512 值

参数

wKgZPGdJog6ADbzHAABT4uOtClE148.png

返回值

wKgZPGdJohmAEs2VAABYIfe8cDE732.png

例子

wKgZPGdJoiSAYoEfAAD-MqDAIX4875.png

5.9 crypto.base64_encode(data)

将数据进行 base64 编码

参数

wKgZO2dJoi-AKAxGAAA5RiUShfc873.png

返回值

wKgZO2dJojiAIiFhAAA44N62syQ009.png

例子

wKgZPGdJokOAQMhGAAIn9e3oYDI349.png

5.10 crypto.base64_decode(data)

将数据进行 base64 解码

参数

wKgZO2dJok-AfI-6AAA7z_NzHnk038.png

返回值

wKgZPGdJomeAc8nUAAA4X2vjoYc647.png

例子

wKgZPGdJonKAPmn_AAIYMemHlaU695.png

5.11 crypto.cipher_list()

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

参数

返回值

wKgZO2dJon2AHYy-AABVSwKuLB0893.png


例子

wKgZPGdJoo2ABqDIAAF6gU-HzSM019.png

5.12 crypto.cipher_suites()

获取当前固件支持的 cipher suites 列表

参数

返回值

wKgZPGdJopiAbrQLAABTuGKlXRg682.png


例子

wKgZPGdJoqSAd_UFAAFzlq4PMxU976.png

5.13 crypto.cipher_encrypt(type, padding, str, key, iv)

对称加密

参数

wKgZO2dJorCAQas8AAEWTokTTCE443.png


返回值

wKgZPGdJor2AYGbnAAA50mZPFOo343.png

例子

wKgZO2dJoseAejJtAAIe9hF4AWM075.png

5.14 crypto.cipher_decrypt(type, padding, str, key, iv)

对称解密

参数

wKgZPGdJotSAY0FnAAEbw3jHGQw681.png


返回值

wKgZO2dJot-ALUJvAAA5bTV-QIk570.png

例子

wKgZPGdJouqAURfvAAK9QJb1EoY289.png

5.15 crypto.crc16(method, data, poly, initial, finally, inReversem outReverse)

计算 CRC16

参数

wKgZPGdJovqAZcoHAAC7O58CPvI284.png


返回值

wKgZPGdJowWAWh5XAAA5HZPOIms866.png

例子

wKgZPGdJoxCAPtAYAACBd5hejQ4686.png

5.16 crypto.crc16_modbus(data, start)

直接计算 modbus 的 crc16 值

参数

wKgZPGdJoxyAYPDlAABSv9PK8ek087.png

返回值

wKgZPGdJoyWADBnHAAA2yjtfTek721.png

例子

wKgZPGdJoy-AMMQxAAFN42NK4aM720.png

5.17 crypto.crc32(data)

计算 crc32 值

参数

wKgZO2dJoz6AfvLoAAAwo5Jlr5M142.png

返回值

wKgZPGdJo0iAEv0kAAA3xqlnaRg507.png

例子

wKgZO2dJo1GAU9atAACI3rsrAqw513.png

5.18 crypto.crc8(data, poly, start, revert)

计算 crc8 值

参数

wKgZO2dJo1yAQ_xMAADIceC_7uk157.png

返回值

wKgZPGdJo2eAHhMdAAA20KHnMI4646.png

例子

wKgZO2dJo3GADbJPAADwK-9nkz8540.png

5.19 crypto.crc7(data, poly, start)

计算 crc7 值

参数

wKgZPGdJo3uAaXA7AACCRW13gTo631.png

返回值

wKgZPGdJo5SANVZNAAA6TzYkYKE063.png

例子

wKgZPGdJo5-AaAlwAAER_9oXIzo864.png

5.20 crypto.checksum(data, mode)

计算 checksum 校验和

参数

wKgZO2dJo6qAPUb-AAB3ojZF0GI840.png

返回值

wKgZO2dJo7aAbmTNAAA6E1_1fZU047.png

例子

wKgZPGdJo8GAYcb-AAGV_yEmED0275.png

5.21 crypto.trng(len)

生成真随机数

参数

wKgZPGdJo86ADUmhAAA1BY3JVI8176.png

返回值

wKgZO2dJo9mACD08AABB8Vevn3Q011.png

例子

wKgZO2dJo-OANT8cAADYGkPEwMg188.png

5.22 crypto.totp(secret,time)

计算 TOTP 动态密码的结果

参数

wKgZPGdJo--AEFM3AACLm3pCjdY566.png

返回值

wKgZO2dJo_uADji9AABTBnOqCzo340.png

例子

wKgZPGdJpAWAEfnaAAE8DIxdDUY931.png

5.23 crypto.md_file(tp, path, hmac)

计算文件的 hash 值(md5/sha1/sha256 及 hmac 形式)

参数

wKgZO2dJpByAIgW6AAClmxCpdDE077.png

返回值

wKgZPGdJpCeAObO7AABPTJOwdNs551.png

例子

wKgZO2dJpDOAHrv4AAQ2Hk37UhQ592.png

5.24 crypto.md(tp, data, hmac)

计算数据的 hash 值(md5/sha1/sha256 及 hmac 形式)

参数

wKgZO2dJpD6ADh5DAACXitucaVE645.png

返回值

wKgZPGdJpEiAZC7RAABUZcNCq4I228.png

例子

wKgZPGdJpFOAZntUAAOfWL3FAPw537.png

5.25 crypto.hash_init(tp)

创建流式 hash 用的 stream

参数

wKgZO2dJpGCAI4LcAAB6rn63ziA843.png

返回值

wKgZO2dJpGmAJpmSAABQ_jdgoqk871.png

例子

wKgZPGdJpHiAJPTYAANIcbus5Kk461.png

5.26 crypto.hash_update(stream, data)

流式 hash 更新数据

参数

wKgZO2dJpIWAGlGrAACJIM1IMdU516.png

返回值

例子

wKgZO2dJpJOAJt9kAABoDoutq0o874.png

5.27 crypto.hash_finish(stream)

获取流式 hash 校验值并释放创建的 stream

参数

wKgZPGdJpJ6AbrvLAABStilXUIw856.png


返回值

wKgZO2dJpKeAX7_rAABrdwuadu8611.png


例子

wKgZO2dJpLGAfXU0AACFPk6PIRk732.png

六、功能验证

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 键然后点按重启键即可.

wKgZPGdJpMuAEcdaABfav2gQXWU185.png

6.1.3识别电脑的正确端口

判断是否进入 BOOT 模式:模块上电,此时在电脑的设备管理器中,查看串口设备, 会出现一个端口表示进入了 BOOT 下载模式,如下图所示:

wKgZPGdJpPuAB_Y2AANIrtPjBus839.png

6.1.4 用 Luatools 工具烧录

新建项目

首先,确保你的 Luatools 的版本,大于等于 3.0.6 版本。

在 Luatools 的左上角上有版本显示的,如图所示:

wKgZO2dJpQaAS-YWAAF7zBVUk_Q323.png

Luatools 版本没问题的话, 就点击 Luatools 右上角的“项目管理测试”按钮,如下图所示:

wKgZPGdJpRGAcBaEAAEmi7P1zOk338.png

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

wKgZPGdJpR2ANypDAASsUXhW2xQ196.png

开始烧录

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

wKgZO2dJpSuAc6vFAATnqDrG6Rg933.png

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

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

wKgZO2dJpTeATz6sAAC3YyKBBLQ326.png

进入 BOOT 模式下载,如图:

wKgZPGdJpUKAPLPSAAHzSIqRyR4350.png

wKgZPGdJpUyAfdGeAAJENvChPwY134.png

6.2 例程

参考以下示例,本库有专属 demo,复制链接查看 crypto 的 demo 例子:
(https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/crypto)

wKgZPGdJpX6AJ7-qAAVISJ2TYPw173.pngwKgZO2dJpZmACpl2AAeqvdbP2PQ861.pngwKgZPGdJpayASWyTAAZyHNxI3p4175.pngwKgZO2dJpb2AVX8xAAWzVa_hRmM977.pngwKgZPGdJpdCASC2YAAUzCTbVs58698.pngwKgZPGdJpd6AE2CtAAXsgV1KOrs310.pngwKgZPGdJpfOASP6-AAaV1KrFWIw212.pngwKgZO2dJpgeAJ6pbAAdxtwix8v4222.pngwKgZPGdJphqAJbqtAAjPlTAVcbU210.pngwKgZPGdJpimAPAktAAd8M9hL458472.pngwKgZO2dJpjiAFIKGAAb-Xa1Hpqs308.pngwKgZO2dJpkWAPhBJAAEmaKOtk9U028.png

6.3 对应 log

wKgZO2dJplWAHJjrAAmX3tGHTKY404.pngwKgZO2dJpm-AXsVaAAheU_FXkrM624.pngwKgZO2dJpomAfB4ZAAN_KEuJUlA687.pngwKgZO2dJpqOAYkgPAA1TpzVSoTY645.pngwKgZPGdJprOAdaySAAY7QjJYxDM488.pngwKgZO2dJpsaAct2FAAbTJ5xPqms502.pngwKgZO2dJptyAK9D5AAaTdahJ3C8252.pngwKgZPGdJpvGAEFv6AAX2ZV52mJc108.pngwKgZPGdJrEiAYa-tAAXIjAnhl_Q017.pngwKgZPGdJrFqAT-tRAAkf_JWFPys427.pngwKgZO2dJrHGAbgIcAAnMt3aEyL0490.pngwKgZPGdJrICAM6BrAAaOEWgWBsc274.png

分享完毕

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 4G
    4G
    +关注

    关注

    15

    文章

    5517

    浏览量

    118971
  • 模组
    +关注

    关注

    6

    文章

    1487

    浏览量

    30359
  • LuatOS
    +关注

    关注

    0

    文章

    76

    浏览量

    1936
收藏 人收藏

    评论

    相关推荐

    基于移芯EC618平台设计研发的Air780E/Air600E系列低功耗4G Cat.1模组

    11月30日,合宙全新发布LuatOS-SoC@EC618V1001最新固件,适用基于移芯EC618平台设计研发的Air780E/Air600E系列低功耗4G Cat.1
    的头像 发表于 12-02 14:42 5838次阅读

    基于Air780E的远程报警器方案

    恒博A780E-S智能远程报警器方案板,基于合宙低功耗4G Cat.1模组Air780E设计,支持LuatOS二次
    发表于 03-01 11:51 1883次阅读

    合宙低功耗4G模组Air780E——产品规格书

    合宙低功耗4G模组Air780E的规格信息速览
    的头像 发表于 09-02 18:04 970次阅读
    合宙低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>——产品规格书

    合宙低功耗4G模组Air780E——硬件设计手册01

    Air780E是一款基于移芯EC618平台设计的LTECat1无线通信模组。支持FDD-LTE/TDD-LTE的4G远距离无线传 输技术。 另外,模组提供了USB/UART/I2C等
    的头像 发表于 09-04 14:39 1123次阅读
    合宙低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>——硬件设计手册01

    合宙Air780E硬件设计手册02

    合宙低功耗4G模组Air780E硬件设计介绍
    的头像 发表于 09-06 12:02 466次阅读
    合宙<b class='flag-5'>Air780E</b>硬件设计手册02

    干货篇:低功耗4G模组Air780E的串口通信

    ​ 今天我们来讲解低功耗4G模组Air780E的串口通信的基本用法,小伙伴们,学起来吧!
    的头像 发表于 10-05 14:38 540次阅读
    干货篇:低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的串口通信

    LuatOS与ADC:Air780E模组开发的新篇章!

    今天我们学习的是Air780E模组LuatOS开发之ADC应用,希望能帮助到大家。
    的头像 发表于 11-07 14:12 244次阅读
    <b class='flag-5'>LuatOS</b>与ADC:<b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>开发</b>的新篇章!

    Air780E模组的ADC之旅 LuatOS开发实例

    今天学习一个新的示例,关于Air780E模组LuatOS开发的ADC应用实例,希望大家有所收获。
    的头像 发表于 11-11 09:33 193次阅读
    <b class='flag-5'>Air780E</b><b class='flag-5'>模组</b>的ADC之旅  <b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>实例

    关于4G模组LuatOS开发通用加解密函数(crypto)|全攻略

    本次我要说的攻略是关于4G模组LuatOS开发通用加解密函
    的头像 发表于 11-30 09:52 229次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>:<b class='flag-5'>通用</b><b class='flag-5'>加解密函数</b>(<b class='flag-5'>crypto</b>)|全攻略

    Air780E模组LuatOS开发的位运算(bit)教程篇!

    本次我们要学习的是4G模组Air780ELuatOS开发关于位运算(bit)教程分享给大家。
    的头像 发表于 11-26 11:58 130次阅读
    <b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>的位运算(bit)教程篇!

    低功耗模组Air780E的AT指令:FTP示例!

    本文说的是关于4G模组AT指令的FTP示例,以Air780E为例,希望大家有所收获。
    的头像 发表于 11-30 09:40 178次阅读
    低功耗<b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的AT指令:FTP示例!

    解析Air780E模组LuatOS开发的随机数(random) 示例篇

    本文主要解析的是低功耗4G模组Air780ELuatOS开发随机数(random)实例,我以整理成文分享给大家。
    的头像 发表于 11-29 20:23 113次阅读
    解析<b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>的随机数(random) 示例篇

    4G模组Air780ELuatOS开发之位运算(bit)示例

    本文我要说的是低功耗4G模组Air780ELuatOS开发关于位运算(bit)示例,我将详细
    的头像 发表于 12-02 14:33 157次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>之位运算(bit)示例

    Air780E模组LuatOS开发实战 —— 手把手教你搞定数据打包解包

    本文要说的是低功耗4G模组Air780ELuatOS开发实战,我将手把手教你搞定数据打包解包。
    的头像 发表于 12-03 11:17 144次阅读
    <b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>实战 —— 手把手教你搞定数据打包解包

    来来来,看这里:低功耗模组LuatOS开发的日志输出!

    本文以低功耗4G模组Air780E为例,学会低功耗模组LuatOS开发的日志输出,积累技术。
    的头像 发表于 12-05 09:09 140次阅读
    来来来,看这里:低功耗<b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>的日志输出!