阿里雲物聯網平臺使用心得(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步中發送溫溼度數據的時候要用到的。今天的內容先說到這,下次超子再給大家介紹,如何構建發送數據的報文。


分享到:


相關文章: