全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
消息队列 MQ

MQTT 签名计算

更新时间:2017-08-30 13:26:53

本文档介绍使用 MQTT 收发消息中需要用到的签名的计算方式以及使用控制台工具生成签名的方法。

使用 MQTT 收发消息,服务端需要对客户端的身份进行权限校验,因此客户端请求中都需要带上签名以便比对身份。

MQTT SDK 访问消息服务器

MQTT 客户端实际连接 MQTT 消息服务器时,在 connect 报文中需要上传 username 和 password。其中 username 就是 AccessKey,password 则是将 Group ID 作为待签名字符串,用 SecretKey 作为秘钥计算得到的签名。

比如客户端的 Client ID 是 GID_AAA@@@BBB001。

此时待签名字符串就是取 Client ID 的前缀,即 Group ID,“GID_AAA”。

然后用 SecretKey 作为秘钥,使用 HmacSHA1 方法对上面的待签名字符串做签名计算得到一个二进制数组,最后对该二进制数组做 Base64 编码得到最终的 password 签名字符串,即 “eqweq+adwe23fssf”。

Hmac 的算法实现,各个语言都有现成的函数库,请自行搜索。

使用控制台生成签名

为方便用户比对验证自己的签名计算是否正确,LMQ 控制台提供了签名计算工具供参考比对。

输入程序使用的帐号 AccessKey,SecretKey 以及 GroupId,即可得到程序中需要设置的 UserName 和 PassWord 参数。具体参考如下:

控制台生成签名

注意:此工具仅仅使用浏览器前端 JavaScript 完成计算,并不会传输 SecretKey 到 MQ 后端,因此不用担心 SecretKey 泄漏的风险。

本文导读目录