设备端与阿里云IoT平台建立MQTT通道的CONNECT报文有三个关键参数:客户端标识符 (ClientId) ,用户名(User Name),密码(Password)。这三个参数由设备三元组(productKey,deviceName,deviceSecret)按照阿里云IoT签名规则生成。
参数
生成方式
描述
username
deviceName+"&"+productKey
password
sign_hmac(deviceSecret,content)
sign_hmac为mqttClientId中的signmethod
content为 "clientId${id}deviceName${deviceName}productKey${productKey}timestamp${timestamp}"
其中
id:表示客户端ID,64字符内。
timestamp:表示当前时间毫秒值。
clientId
id+"|securemode=3,signmethod=hmacsha1,timestamp="+timestamp+"|"
id:表示客户端ID,64字符内。
timestamp:表示当前时间毫秒值。
securemode:表示安全模式:可选值有2(TLS加密)和3(非加密)
signmethod:表示签名算法类型。支持hmacmd5,hmacsha1和hmacsha256
2. 三元组接入示例
2.1 设备三元组信息
设备三元组
productKey = a14Xib5kdYd
deviceName = light1983432
deviceSecret = oLyaKqVxtRvjH284LdhqVgVUx1UPy6zq
建立MQTT连接时参数
clientId = SN1928339
timestamp = 1539421321846
signmethod = hmacsha1
2.2 参数生成结果
mqttClientId = SN1928339|securemode=3,signmethod=hmacsha1,timestamp=1539421321846|
mqttUsername = light1983432&a14Xib5kdYd
mqttPassword = b2488041f64f425016b467ee1c94959ebd592ad1
生成password的content
content=clientIdSN1928339deviceNamelight1983432productKeya14Xib5kdYdtimestamp1539421321846
2.3 建立连接
mqttClientId作为MQTT客户端标识符 (ClientId)
mqttUsername作为MQTT用户名(User Name)
mqttPassword作为MQTT密码(Password)
在线Password生成算法验证
2021-09-01 10:29:13
6KB
物联网
1