阿里云物联网平台使用心得(39)CoAP协议之构建认证报文步骤2


阿里云物联网平台使用心得(39)CoAP协议之构建认证报文步骤2

题目

大家好,超子又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖。紧接上一篇文章,我们接着往下说认证报文的Payload如何构建。

{"productKey":"@","deviceName":"#","clientId":"$","sign":"*","seq":"1"}

认证报文中的Payload数据格式如上所示,其中 @、#、$和*都需要替换成相应的具体内容。这些内容和使用HTTP协议时构建的内容非常相似 。@是三元组中的产品KEY ,#是三元组中的设备名称,$是客户端ID,可以自己定义,超子就用产品秘钥&设备名称的格式。

阿里云物联网平台使用心得(39)CoAP协议之构建认证报文步骤2

上图是我设备的三元组信息,我们进行数据的替换。

@是a12dTIroTJC

#是D001

$是a12dTIroTJC&D001

以上三个信息确定好了,现在就剩*了,*需要经过一步hmacmd5加密。首先看待加密的明文,如何构建

clientId?deviceName?productKey?seq1

其中3个问号,要进行替换,而且我们已经确定好了,分别就是前面$、#和@。我们替换一下,得到待加密的明文结果如下所示:

clientIda12dTIroTJC&D001deviceNameD001productKeya12dTIroTJCseq1

hmacmd5加密的秘钥就是三元组信息中的设备秘钥:jBiRd3INpmL0zrb8XgURzP6JJOmFWMdJ。我们打开一个在线加密的网站,进行加密。

阿里云物联网平台使用心得(39)CoAP协议之构建认证报文步骤2

大家一定仔细检查待加密的明文,尤其是不要多空格,还有回车换行,因为不好发现,所以要特别小心。最终加密后的结果如下:

e21266c33869e5ccbe0e789739933e5f

我们把@、#、$和*进行替换,等待完整的证报文的Payload如下:

{"productKey":"a12dTIroTJC","deviceName":“D001","clientId":"a12dTIroTJC&D001","sign":"e21266c33869e5ccbe0e789739933e5f ","seq":"1"}

我们把Payload数据换成16进制,简化书写去掉0x,结果如下

7B 22 70 72 6F 64 75 63 74 4B 65 79 22 3A 22 61 31 32 64 54 49 72 6F 54 4A 43 22 2C 22 64 65 76 69 63 65 4E 61 6D 65 22 3A 22 44 30 30 31 22 2C 22 63 6C 69 65 6E 74 49 64 22 3A 22 61 31 32 64 54 49 72 6F 54 4A 43 26 44 30 30 31 22 2C 22 73 69 67 6E 22 3A 22 65 32 31 32 36 36 63 33 33 38 36 39 65 35 63 63 62 65 30 65 37 38 39 37 33 39 39 33 33 65 35 66 22 2C 22 73 65 71 22 3A 22 31 22 7D

我们千万不要忘了, Payload和前面的报文之间,必须加一个0xFF作为间隔符号,一定不要忘了,然后我们把完整的报文组合在一起,16进制,简化书写去掉0x,结果如下:

40 02 01 01 3D 21 61 31 32 64 54 49 72 6F 54 4A 43 2E 63 6F 61 70 2E 63 6E 2D 73 68 61 6E 67 68 61 69 2E 6C 69 6E 6B 2E 61 6C 69 79 75 6E 63 73 2E 63 6F 6D 42 16 32 44 61 75 74 68 11 32 51 32 FF 7B 22 70 72 6F 64 75 63 74 4B 65 79 22 3A 22 61 31 32 64 54 49 72 6F 54 4A 43 22 2C 22 64 65 76 69 63 65 4E 61 6D 65 22 3A 22 44 30 30 31 22 2C 22 63 6C 69 65 6E 74 49 64 22 3A 22 61 31 32 64 54 49 72 6F 54 4A 43 26 44 30 30 31 22 2C 22 73 69 67 6E 22 3A 22 65 32 31 32 36 36 63 33 33 38 36 39 65 35 63 63 62 65 30 65 37 38 39 37 33 39 39 33 33 65 35 66 22 2C 22 73 65 71 22 3A 22 31 22 7D

整个认证报文到此构建完毕,我们打开网络调试助手,实际测试一下,看看我们的报文构建的正确与否。使用CoAP协议时要建立UDP连接,远程主机的域名和端口号,超子在上一篇文章中我们构建好了。

a12dTIroTJC.coap.cn-shanghai.link.aliyuncs.com:5682

阿里云物联网平台使用心得(39)CoAP协议之构建认证报文步骤2

如上图所示,我们将整个认证报文发给阿里云后,正确的情况下,我们会收到阿里云回复的3个关键信息random、 seqOffset和token。这3个关键信息,就是接下来,第2步中发送温湿度数据的时候要用到的。今天的内容先说到这,下次超子再给大家介绍,如何构建发送数据的报文。


分享到:


相關文章: