本文档介绍使用 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 参数。具体参考如下:
[backcolor=transparent]注意:此工具仅仅使用浏览器前端 JavaScript 完成计算,并不会传输 SecretKey 到 MQ 后端,因此不用担心 SecretKey 泄漏的风险。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。