全部產品
Search
文件中心

IoT Platform:如何計算MQTT簽名參數

更新時間:Apr 25, 2026

裝置通過您自研的MQTT接入工具串連物聯網平台時,需輸入MQTT的簽名認證參數username、passwd和mqttClientId。本文介紹擷取MQTT串連簽名參數值的方法。

概述

您可根據實際業務需要,選擇如下方法擷取MQTT簽名參數值。

方法

說明

直接在物聯網平台擷取

支援簽名演算法為hmacsha256。

裝置的ClientId預設為${ProductKey} + '.' + ${DeviceName}組成的字串,不可修改。

使用Node.js語言指令碼計算

支援簽名演算法為hmacsha256。

裝置的ClientId預設為${ProductKey} + '.' + ${DeviceName}組成的字串,可修改。

直接在物聯網平台擷取

  1. 登入物聯網平台控制台

  2. 執行個體概覽頁簽的全部環境下,找到對應的執行個體,單擊執行個體卡片。

  3. 在左側導覽列,選擇裝置管理 > 裝置,進入裝置頁面。

  4. 在裝置列表中,單擊目標裝置對應的查看按鈕,進入裝置詳情頁面。

  5. 裝置資訊頁簽下,單擊MQTT串連參數右側的查看,擷取MQTT簽名參數資訊。

    重要

    其中clientId是mqttClientId值,請勿與裝置的clientId混淆。MQTT串連參數的詳細說明,請參見MQTT-TLS串連通訊

    彈出MQTT 串連參數對話方塊,顯示 clientIdusernamepasswdmqttHostUrlport 五個參數及其值,單擊一鍵複製可複製全部參數資訊。

使用Node.js語言指令碼計算

  1. 下載簽名工具包signTool.zip,解壓縮後,在檔案mqttSignTool.js中修改以下參數,並儲存。

    參數

    樣本

    說明

    productKey

    a1Ee***

    您添加裝置後,儲存的裝置認證資訊,請參見裝置認證資訊

    您可在控制台中裝置的裝置詳情頁面查看。

    deviceName

    8Co5***

    deviceSecret

    bcabcf***

    timestamp

    2524608000000

    時間戳記。目前時間毫秒值。

    briefId

    12345

    裝置的Client ID資訊。選擇性參數。

    本工具包預設設定為${ProductKey} + '.' + ${DeviceName}組成的字串,您可根據需要修改,例如var briefId = '12345'

    重要

    該值可自訂,長度在64個字元以內。建議使用您裝置的MAC地址或SN碼,方便您識別區分不同的裝置。

  2. 在Windows系統或Linux系統下,下載並安裝Node.js。本文以Ubuntu 16.04 64位Linux系統為例,下載已編譯的包node-v16.5.0-linux-x64.tar.gz

    1. 登入Linux虛擬機器。

    2. 執行以下命令,下載對應版本包,然後解壓。

      wget https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-x64.tar.gz
      tar xf node-v16.5.0-linux-x64.tar.gz
      cd node-v16.5.0-linux-x64
      ./bin/node -v

      顯示如下版本號碼,表示解壓安裝成功。

      v16.5.0
    3. node-v16.5.0-linux-x64/bin檔案目錄下包含了node、npm等命令,執行以下命令配置全域環境變數。

      ln -s /root/node-v16.5.0-linux-x64/bin/npm   /usr/local/bin/
      ln -s /root/node-v16.5.0-linux-x64/bin/node   /usr/local/bin/
  3. 執行以下命令,先退出node-v16.5.0-linux-x64檔案目錄,然後建立專案檔signTool,來存放JavaScript檔案和簽名庫檔案。

    cd..
    mkdir signTool
    cd signTool/
  4. 將步驟1中已修改完成的mqttSignTool.js檔案,上傳至Linux虛擬機器開發環境的signTool目錄下。

  5. signTool檔案下,執行以下命令,下載並查看簽名庫檔案。

    npm install crypto-js
    ls

    下載後的庫檔案如下所示。

    mqttSignTool.js  node_modules  package.json  package-lock.json
  6. 執行以下命令,運行簽名檔案mqttSignTool.js

    node mqttSignTool.js

    返回如下資訊,即為通過MQTT接入物聯網平台的簽名認證參數資訊。

    重要

    其中clientId是mqttClientId值,請勿與裝置的clientId混淆。MQTT串連參數的詳細說明,請參見MQTT-TLS串連通訊

    username:
    xxx
    clientId:
    xxx|securemode=2,signmethod=hmacsha256,timestamp=2524608000000|
    passwd:
    xxx