
MQTT_PASSWD工具算法.rar
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本资源为MQTT_PASSWD工具算法相关资料,包含密码生成与验证的核心算法和实现代码,适用于物联网安全通信场景。
在设备端与阿里云IoT平台建立MQTT通道的CONNECT报文中有三个关键参数:客户端标识符 (ClientId)、用户名(User Name)以及密码(Password)。这三个参数由设备三元组(productKey, deviceName, deviceSecret)按照阿里云IoT签名规则生成。具体如下:
- 用户名:
```plaintext
username = deviceName + & + productKey
```
- 密码:
```plaintext
password = sign_hmac(deviceSecret, content)
```
其中,`sign_hmac`为MQTT中的客户端标识符 (ClientId) 的签名方法。内容 `content` 格式如下:
```plaintext
content = clientId${id}deviceName${deviceName}productKey${productKey}timestamp${timestamp}
```
- id:表示客户端ID,64字符内。
- timestamp:表示当前时间毫秒值。
而MQTT的ClientId格式为:
```plaintext
clientId = id + |securemode=3,signmethod=hmacsha1,timestamp= + timestamp +|
```
其中,
- securemode:安全模式可选值有2(TLS加密)和3(非加密)
- signmethod:签名算法类型,支持hmacmd5、hmacsha1和hmacsha256。
示例中使用设备三元组信息为:
```plaintext
productKey = a14Xib5kdYd
deviceName = light1983432
deviceSecret = oLyaKqVxtRvjH284LdhqVgVUx1UPy6zq
```
建立MQTT连接时参数为:
```plaintext
clientId = SN1928339timestamp=1539421321846signmethod=hmacsha1
username = light1983432&a14Xib5kdYd
```
生成密码的content内容如下:
```plaintext
content=clientIdSN1928339deviceNamelight1983432productKeya14Xib5kdYdtimestamp1539421321846
```
最终生成的参数为:
- mqttClientId:作为MQTT客户端标识符 (ClientId)
- mqttUsername:作为MQTT用户名(User Name)
- mqttPassword:作为MQTT密码(Password)
全部评论 (0)


