美文网首页Luat开源硬件
Luat实例教程:crypto加密功能

Luat实例教程:crypto加密功能

作者: Luat物联网通信模块 | 来源:发表于2018-03-24 10:44 被阅读30次

本示例实现的功能是:常见的加密算法。

1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己随便取名)

2.设置本文件被全体可见。也就意味着,一旦test被某一文件加载,则test在任何文件中均可被看见,即test中全局变量和函数均可被任何文件调用。

module(...,package.seeall)

3.test文件头需要 require "xxx" 模块。加载后,就可以调用xxx.lua库文件中的全局变量和函数了

require"common"

4.定义print函数,调试用

local function print(...)
    _G.print("test",...)
end

5.分别编写base64,hmac_md5,md5,crc,aes加密算法函数

--[[
函数名:base64test
功能  :base64加解密算法测试
参数  :无
返回值:无
]]
local function base64test()
    local originstr = "123456crypto.base64_encodemodule(...,package.seeall)sys.timer_start(test,5000)jdklasdjklaskdjklsa"
    local encodestr = crypto.base64_encode(originstr,slen(originstr))
    print("base64_encode",encodestr)
    print("base64_decode",
    crypto.base64_decode(encodestr,slen(encodestr)))
end

--[[
函数名:hmacmd5test
功能  :hmac_md5算法测试
参数  :无
返回值:无
]]
local function hmacmd5test()
    local originstr = "asdasdsadas"
    local signkey = "123456"
    print("hmac_md5",
    crypto.hmac_md5(originstr,slen(originstr),signkey,slen(signkey)))
end

--[[
函数名:md5test
功能  :md5算法测试
参数  :无
返回值:无
]]
local function md5test()
    local originstr = "sdfdsfdsfdsffdsfdsfsdfs1234"
    print("md5",crypto.md5(originstr,slen(originstr)))
end

--[[
函数名:crctest
功能  :crc算法测试
参数  :无
返回值:无
]]
local function crctest()
    local originstr = "sdfdsfdsfdsffdsfdsfsdfs1234"
    print("crc16_modbus",
    string.format("%04X",crypto.crc16_modbus(originstr,slen(originstr))))
    print("crc32",
    string.format("%08X",crypto.crc32(originstr,slen(originstr))))
end

--[[
函数名:aestest
功能  :aes算法测试
参数  :无
返回值:无
]]
local function aestest()
    local originstr = "123456crypto.base64_encodemodule(...,package.seeall)sys.timer_start(test,5000)jdklasdjklaskdjklsa"
--加密模式:ECB,填充:zeropadding,数据块:128位
    local encodestr = crypto.aes128_ecb_encrypt(originstr,slen(originstr),"1234567890123456",16)
    print("aes128_ecb_encrypt",common.binstohexs(encodestr))
    print("aes128_ecb_decrypt",
crypto.aes128_ecb_decrypt(encodestr,slen(encodestr),"1234567890123456",16))             
end

6.编写算法测试入口,并用定时器调用

local function test()
    base64test()
    hmacmd5test()
    md5test()
    crctest()
    aestest()
end

sys.timer_start(test,5000)

7.在编辑工具中建立一个名为main.lua的文件。lua脚本的执行从main.lua开始,main.lua是入口文件(注意:main.lua只能有一个)。在main.lua中把test加载进去就好了。sys.init()是对系统初始化,sys.run()是系统主程序。这两句必须有。

--重要提醒:必须在这个位置定义MODULE_TYPE、PROJECT和VERSION变量
--MODULE_TYPE:模块型号,目前仅支持Air201、Air202、Air800
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
MODULE_TYPE = "Air202"
PROJECT = "CRYPTO"
VERSION = "1.0.0"
require"sys"
require"test"
if MODULE_TYPE=="Air201" then
require"wdt"
end
sys.init(0,0)
sys.run()

!!!attention

一个工程只有一个main.lua

相关文章

  • Luat实例教程:crypto加密功能

    本示例实现的功能是:常见的加密算法。 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己...

  • Node-3

    crypto 模块 crypto 模块提供了加密功能,实现了包括对 OpenSSL 的哈希、HMAC、加密、解密、...

  • node.js密码加密实践

    crypto crypto 模块提供了加密的功能,包括对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及...

  • 前端安全

    一:加密安全 1、Crypto Node.js 的crypto模块封装了诸多的加密功能, 包括 OpenSSL 的...

  • nodejs-md5加盐到解密比对

    nodejs-crypto 加密工具 crypto 模块提供了加密功能,包括对 OpenSSL 的哈希、MD5、H...

  • Luat实例教程:pwm功能

    本示例实现的功能是:pwm功能demo项目 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可...

  • Luat实例教程:http功能

    本示例实现的功能是:http功能测试 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己...

  • Node crypto模块简单探究

    crypto 模块提供了加密功能,包括对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套...

  • Luat实例教程:call电话功能

    本示例实现的功能是:通话测试,测试呼入呼出 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可...

  • Luat实例教程:UART串口功能

    本示例实现的功能是:uart接收外围设备的输入,回复相同的字符 1.在编辑工具建立一个test.lua的文件(不一...

网友评论

    本文标题:Luat实例教程:crypto加密功能

    本文链接:https://www.haomeiwen.com/subject/quhqcftx.html