本次我要說的攻略是關于4G模組LuatOS開發的通用加解密函數,我以我常用的Air780E模組為例子供大家參考。
一、加解密概述
加解密算法是保證數據安全的基礎技術,無論是在數據傳輸、存儲,還是用戶身份驗證中,都起著至關重要的作用。隨著互聯網的發展和信息安全威脅的增加,了解并掌握常用的加解密算法已經成為開發者和安全從業者的必修課。
常見的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 電腦
電腦操作系統為:
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
分享完畢。
-
函數
+關注
關注
3文章
4327瀏覽量
62569 -
模組
+關注
關注
6文章
1487瀏覽量
30360 -
加密解密算法
+關注
關注
0文章
7瀏覽量
1612 -
LuatOS
+關注
關注
0文章
76瀏覽量
1936
發布評論請先 登錄
相關推薦
評論