本次我要說的攻略是關(guān)于4G模組LuatOS開發(fā)的通用加解密函數(shù),我以我常用的Air780E模組為例子供大家參考。
一、加解密概述
加解密算法是保證數(shù)據(jù)安全的基礎(chǔ)技術(shù),無論是在數(shù)據(jù)傳輸、存儲(chǔ),還是用戶身份驗(yàn)證中,都起著至關(guān)重要的作用。隨著互聯(lián)網(wǎng)的發(fā)展和信息安全威脅的增加,了解并掌握常用的加解密算法已經(jīng)成為開發(fā)者和安全從業(yè)者的必修課。
常見的15種加密解密算法分別是:散列哈希[MD5、SHA1、CRC32],對(duì)稱[DES,3DES(TDEA、Triple DES),AES、,Blowfish,RC4、RC5,IDEA],Base64、Rabbit、Escape。
【三種分類】
1、對(duì)稱加密:
對(duì)稱加密是指加密和解密使用同一個(gè)密鑰的加密方法.由于加密和解密過程中的密鑰相同,因此需要在通信雙方之間安全地共享密鑰.對(duì)稱加密的速度較快,適合用于大量數(shù)據(jù)的加密
2、非對(duì)稱加密:
非對(duì)稱加密算法采用一對(duì)密鑰:公鑰和私鑰.公鑰用于加密,私鑰用于解密.由于加密和解密使用不同的密鑰,非對(duì)稱加密算法解決了密鑰分發(fā)的問題,是當(dāng)前加密系統(tǒng)中安全性最高的加密技術(shù)之一.
3、Hash算法:
這是一種不可逆的算法,它常用于驗(yàn)證數(shù)據(jù)的完整性
二、演示功能概述
本文章通過 Air780 的核心板燒錄 LuatOS 示例代碼,來演示有關(guān)加解密的各種 API 的功能。
https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/crypto
(復(fù)制鏈接查看 crypto 的 demo 例子)
API 的具體用法,讀者可以參考本文中的"五、API 說明"。
三、硬件準(zhǔn)備
3.1 Air780E 核心板
使用Air780E核心板,如下圖所示:
此核心板的詳細(xì)使用說明參考:
https://docs.openluat.com/air780e/product/
Air780E產(chǎn)品手冊(cè)中的 《開發(fā)板Core_Air780E使用說明》,寫這篇文章時(shí)最新版本的使用說明為:《開發(fā)板Core_Air780E使用說明》;若在使用過程中遇到任何問題,可以直接參考這份使用說明文檔。
3.2 SIM 卡
中國大陸環(huán)境下,可以上網(wǎng)的sim卡,一般來說,使用移動(dòng)、電信、聯(lián)通的物聯(lián)網(wǎng)卡或者手機(jī)卡都行。
3.3 PC 電腦
請(qǐng)準(zhǔn)備一臺(tái)配備 USB 接口且能夠正常上網(wǎng)的電腦。
電腦操作系統(tǒng)為:
WIN10以及以上版本的WINDOWS系統(tǒng)。
3.4 數(shù)據(jù)通信線
帶TYPE-C口的USB數(shù)據(jù)線.
四、軟件環(huán)境
4.1 Luatools 工具
要想燒錄 LuatOS 到 4G 模組中,需要用到的調(diào)試工具:Luatools
詳細(xì)使用說明參考:
Luatools工具使用說明:
https://docs.openluat.com/Luatools/
Luatools 工具集具備以下幾大核心功能:
一鍵獲取最新固件:自動(dòng)連接服務(wù)器,輕松下載最新的模組固件.
固件與腳本燒錄:便捷地將固件及腳本文件燒錄至目標(biāo)模組中.
串口日志管理:實(shí)時(shí)查看模組通過串口輸出的日志信息,并支持保存功能.
串口調(diào)試助手:提供簡潔的串口調(diào)試界面,滿足基本的串口通信測試需求.
Luatools下載之后,新建一個(gè)命名為 "Luatools" 的文件夾,將下載的Luatools_v3.exe拷貝或移動(dòng)到新建的Luatools文件夾內(nèi),點(diǎn)擊 Luatools_v3.exe 即可運(yùn)行。
4.2 準(zhǔn)備需要燒錄的代碼
首先要說明一點(diǎn):腳本代碼, 要和固件的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 示例代碼到一個(gè)合適的項(xiàng)目目錄,
示例代碼網(wǎng)站:
https://gitee.com/openLuat/LuatOS-Air780E
下載流程參考下圖:
下載的文件解壓,找到 LuatOS-Air780E-masterdemocryptomain.lua,如圖:
五、API 說明
5.1 crypto.md5(str)
計(jì)算 md5 值
返回值
例子
5.2 crypto.hmac_md5(str, key)
計(jì)算 hmac_md5 值
參數(shù)
返回值
例子
5.3 crypto.sha1(str)
計(jì)算 sha1 值
參數(shù)
返回值
例子
5.4 crypto.hmac_sha1(str, key)
計(jì)算 hmac_sha1 值
參數(shù)
返回值
例子
5.5 crypto.sha256(str)
計(jì)算 sha256 值
參數(shù)
返回值
例子
5.6 crypto.hmac_sha256(str, key)
計(jì)算 hmac_sha256 值
參數(shù)
返回值
例子
5.7 crypto.sha512(str)
計(jì)算 sha512 值
參數(shù)
返回值
例子
5.8 crypto.hmac_sha512(str, key)
計(jì)算 hmac_sha512 值
參數(shù)
返回值
例子
5.9 crypto.base64_encode(data)
將數(shù)據(jù)進(jìn)行 base64 編碼
參數(shù)
返回值
例子
5.10 crypto.base64_decode(data)
將數(shù)據(jù)進(jìn)行 base64 解碼
參數(shù)
返回值
例子
5.11 crypto.cipher_list()
獲取當(dāng)前固件支持的 cipher 列表
參數(shù)
無
返回值
例子
5.12 crypto.cipher_suites()
獲取當(dāng)前固件支持的 cipher suites 列表
參數(shù)
無
返回值
例子
5.13 crypto.cipher_encrypt(type, padding, str, key, iv)
對(duì)稱加密
參數(shù)
返回值
例子
5.14 crypto.cipher_decrypt(type, padding, str, key, iv)
對(duì)稱解密
參數(shù)
返回值
例子
5.15 crypto.crc16(method, data, poly, initial, finally, inReversem outReverse)
計(jì)算 CRC16
參數(shù)
返回值
例子
5.16 crypto.crc16_modbus(data, start)
直接計(jì)算 modbus 的 crc16 值
參數(shù)
返回值
例子
5.17 crypto.crc32(data)
計(jì)算 crc32 值
參數(shù)
返回值
例子
5.18 crypto.crc8(data, poly, start, revert)
計(jì)算 crc8 值
參數(shù)
返回值
例子
5.19 crypto.crc7(data, poly, start)
計(jì)算 crc7 值
參數(shù)
返回值
例子
5.20 crypto.checksum(data, mode)
計(jì)算 checksum 校驗(yàn)和
參數(shù)
返回值
例子
5.21 crypto.trng(len)
生成真隨機(jī)數(shù)
參數(shù)
返回值
例子
5.22 crypto.totp(secret,time)
計(jì)算 TOTP 動(dòng)態(tài)密碼的結(jié)果
參數(shù)
返回值
例子
5.23 crypto.md_file(tp, path, hmac)
計(jì)算文件的 hash 值(md5/sha1/sha256 及 hmac 形式)
參數(shù)
返回值
例子
5.24 crypto.md(tp, data, hmac)
計(jì)算數(shù)據(jù)的 hash 值(md5/sha1/sha256 及 hmac 形式)
參數(shù)
返回值
例子
5.25 crypto.hash_init(tp)
創(chuàng)建流式 hash 用的 stream
參數(shù)
返回值
例子
5.26 crypto.hash_update(stream, data)
流式 hash 更新數(shù)據(jù)
參數(shù)
返回值
無
例子
5.27 crypto.hash_finish(stream)
獲取流式 hash 校驗(yàn)值并釋放創(chuàng)建的 stream
參數(shù)
返回值
例子
六、功能驗(yàn)證
6.1 燒錄固件
6.1.1正確連接電腦和 4G 模組電路板
使用帶有數(shù)據(jù)通信功能的數(shù)據(jù)線,不要使用僅有充電功能的數(shù)據(jù)線.
6.1.2識(shí)別 4G 模組的 BOOT 引腳
在下載之前,要用模組的 BOOT 引腳觸發(fā)下載, 也就是說,要把 4G 模組的 BOOT 引腳拉到 1.8v,或者直接把 BOOT 引腳和 VDD_EXT 引腳相連.我們要在按下 BOOT 按鍵時(shí)讓模塊開機(jī),就可以進(jìn)入下載模式了.
具體到 Air780E 開發(fā)板:
1、當(dāng)我們模塊沒開機(jī)時(shí),按著 BOOT 鍵然后長按 POW 開機(jī).
2、當(dāng)我們模塊開機(jī)時(shí),按著 BOOT 鍵然后點(diǎn)按重啟鍵即可.
6.1.3識(shí)別電腦的正確端口
判斷是否進(jìn)入 BOOT 模式:模塊上電,此時(shí)在電腦的設(shè)備管理器中,查看串口設(shè)備, 會(huì)出現(xiàn)一個(gè)端口表示進(jìn)入了 BOOT 下載模式,如下圖所示:
6.1.4 用 Luatools 工具燒錄
新建項(xiàng)目
首先,確保你的 Luatools 的版本,大于等于 3.0.6 版本。
在 Luatools 的左上角上有版本顯示的,如圖所示:
Luatools 版本沒問題的話, 就點(diǎn)擊 Luatools 右上角的“項(xiàng)目管理測試”按鈕,如下圖所示:
這時(shí)會(huì)彈出項(xiàng)目管理和燒錄管理的對(duì)話框,可以新建一個(gè)項(xiàng)目,如下圖:
開始燒錄
選擇 Air780E 板子對(duì)應(yīng)的底層 core 和剛改的 main.lua 腳本文件.下載到板子中.
點(diǎn)擊下載后,我們需要進(jìn)入 BOOT 模式才能正常下載.
如果沒進(jìn)入 BOOT 模式會(huì)出現(xiàn)下圖情況:
進(jìn)入 BOOT 模式下載,如圖:
6.2 例程
參考以下示例,本庫有專屬 demo,復(fù)制鏈接查看 crypto 的 demo 例子:
(https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/crypto)
6.3 對(duì)應(yīng) log
分享完畢。
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4331瀏覽量
62618 -
模組
+關(guān)注
關(guān)注
6文章
1492瀏覽量
30390 -
加密解密算法
+關(guān)注
關(guān)注
0文章
7瀏覽量
1616 -
LuatOS
+關(guān)注
關(guān)注
0文章
76瀏覽量
1941
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論