onenet 新版MQTTS 连接代码分享

onenet MQTTS 动态生成token

luat 编写代码连接onenet 新版MQTTS代码

代码功能:1.动态生成token 密钥 

                  2.根据IMEI号码 自动创建 平台设备

                  3. 利用生成的token 连接MQTTS 上传数据

工程代码分享github https://github.com/CQADu/luat-onenet-MQTTS.git

token

--[[
连接onenet后台 的token 创建函数
参数 et 密钥过期时间点 字符串
     res 实例名称 有API访问的密钥 和设备mqtt 登陆用的密钥
access_key 产品key
返回连接用的 密钥
说明:加密方式 为sha1
--]]
local function OnenetTokenCreate(et , res ,access_key)
-- 密钥时间只能一个小时有效
--res = "products/".. tostring(productsId)
--et = os.time() + 3600
--et = 1578231806
method = "sha1"
version = '2018-10-31'
org1 = et .. '\n' .. method .. '\n' ..  res .. '\n' .. version
log.info("org1="..org1)
key  = crypto.base64_decode(access_key,string.len(access_key)) -- 解码

sign_b = crypto.hmac_sha1(org1,string.len(org1),key,string.len(key)) -- 采用hmac 里面的sha1 加密算法
log.info("Hmac_sha1 Hex data = " .. sign_b)
sign_b = hex_to_binary(sign_b)
log.info("Hmac_sha1 Hex data2 = " .. sign_b)

sign = crypto.base64_encode( sign_b, string.len(sign_b) ) -- 对hmac 出来的数据进行 base64 编码

hmacUrl = urlEncode(sign)
log.info("经过url 编码的hamc 加密码=" .. hmacUrl)
resUrl = urlEncode(res) -- res 字符串也 url 编码
return string.format('version=%s&res=%s&et=%s&method=%s&sign=%s' ,version, resUrl, et, method, hmacUrl)
end


  • 发表于 2020-01-20 14:02
  • 阅读 ( 2116 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
杜兴杰

嵌入式软硬件

2 篇文章

作家榜 »

  1. 技术销售Delectate 43 文章
  2. 陈夏 26 文章
  3. 国梁 24 文章
  4. miuser 21 文章
  5. 晨旭 20 文章
  6. 朱天华 19 文章
  7. 金艺 19 文章
  8. 杨奉武 18 文章