您是否正受到短信簽名報備的困擾?互億無線解決方案讓您最快15分鐘內(nèi)恢復(fù)信息傳遞,馬上 注冊體驗。

互億無線 · 文檔中心

API簽名機制 - API文檔


1、API 簽名機制使用說明

為了保障數(shù)據(jù)安全和防止惡意調(diào)用,互億無線的接口支持通過 HMAC-SHA256 算法進行簽名認證。對于每一次HTTP或HTTPS協(xié)議請求,我們的網(wǎng)關(guān)將依據(jù)請求參數(shù)信息重新計算簽名,通過對比該簽名與請求中提供的簽名是否一致,從而驗證請求者的身份,以確保傳輸數(shù)據(jù)的完整性與安全性。開發(fā)者在調(diào)用 API 時,需按照本規(guī)范生成簽名并放入請求頭中。

2、什么是簽名機制?

簽名機制是對請求權(quán)限進行加密的過程,目的是:

  • 確認調(diào)用者身份真實可信
  • 提高系統(tǒng)的安全防護能力

3、簽名流程總覽

以下是簽名生成和使用的 5 個步驟:

  • 準備請求關(guān)鍵信息
  • 拼接簽名原文
  • 生成 HMAC-SHA256 簽名
  • 構(gòu)建 Authorization 請求頭
  • 發(fā)起帶簽名的請求

① 準備請求關(guān)鍵信息

名稱 示例 說明
接口地址 http://api.ihuyi.com/empty-number/balance 請求的接口 URL(不含參數(shù)),不同產(chǎn)品,地址是不同的
請求方法 GET 依據(jù)不同產(chǎn)品接口定義(GET 或 POST)
Host api.ihuyi.com 接口域名
Date Mon, 16 Jun 2025 08:24:34 GMT 必須為 GMT 時間格式,偏差不得超過 ±300 秒
APIID end7348191 由平臺分配的接口標識 ID
APIKEY xxxxxxx 由平臺分配的密鑰,用于簽名加密

② 拼接簽名原文

將以下字段拼接成待簽名字符串,注意每行之間需換行:

end7348191
GET /empty-number/balance
date: Mon, 16 Jun 2025 08:24:34 GMT
host: api.ihuyi.com


注意:

  • 第一行為 APPID
  • 第二行為 [請求方法] [接口路徑],不含 query 參數(shù)
  • 時間必須是 GMT 格式,偏差超過 ±300 秒會導(dǎo)致簽名失效

③ 生成簽名

使用 APPSecret 對上一步的字符串執(zhí)行 HMAC-SHA256 加密,并用 Base64 編碼:

Python 示例:


    def generateSignature(self, string_to_sign):
        "生成HMAC簽名生
        # 提取哈希算法(從hmac-sha256中提取sha256)
        hash_algorithm = self.Algorithm[5:]
        # 生成簽名
        hmac_obj = hmac.new(
            self.APIKEY.encode("utf-8"),
            string_to_sign.encode("utf-8"),
            getattr(hashlib, hash_algorithm)
        )
        return base64.b64encode(hmac_obj.digest()).decode("utf-8")


完整python及php、Java、Go、Shell示例代碼,可參考:https://gitee.com/shsurlink/api-demo/tree/master/hmac-auth

④ 構(gòu)建 Authorization 請求頭

將簽名結(jié)果填寫至 Authorization 字段中,格式如下:

Authorization: Signature keyId="平臺的APIID", algorithm="加密方式", headers="加密的請求頭字段名", signature="簽名結(jié)果"


示例:

Authorization: Signature keyId="end7348191", algorithm="hmac-sha256", headers="@request-target date host", signature="Bm0wLf0soZJMsf5INx3pfTPmylbsAVd5Z27oZmyZhuc="

⑤ 發(fā)起完整請求

將簽名后的請求頭加入 HTTP 請求中,完成調(diào)用。

完整HTTP 請求結(jié)構(gòu):

名稱 是否必選 描述 示例值
url 接口地址,不同產(chǎn)品,地址是不同的 http://api.ihuyi.com/empty-number/submit
headers 公共請求頭 Host: api.ihuyi.com
Date: Fri, 13 Jun 2025 10:02:39 GMT
Content-Type: application/json
Authorization: Signature keyId="end7348191", algorithm="hmac-sha256", headers="@request-target date host",
signature="Bm0wLf0soZJMsf5INx3pfTPmylbsAVd5Z27oZmyZhuc="
body 請求體 請考產(chǎn)品的說明文檔
method 請求方法 POST


完整請求示例:

POST /empty-number/balance HTTP/1.1
Host: api.ihuyi.com
Date: Mon, 16 Jun 2025 08:24:34 GMT
Content-Type: application/json
Authorization: Signature keyId="end7348191", algorithm="hmac-sha256", headers="@request-target date host", signature="Bm0wLf0soZJMsf5INx3pfTPmylbsAVd5Z27oZmyZhuc="

現(xiàn)在注冊,即享新用戶禮包!

在線咨詢
電話咨詢

服務(wù)熱線:

4008 808 898

服務(wù)熱線(工作時間):

4008 808 898

業(yè)務(wù)咨詢(非工作時間):

售后咨詢(非工作時間):

提交成功
若短信發(fā)送異常,系統(tǒng)將自動給您發(fā)送語音驗證碼,請注意接聽電話。

驗證碼已發(fā)送到您的手機,請查收!

輸入驗證碼后,點擊“開通體驗賬戶”按鈕可立即開通體驗賬戶。

收不到短信驗證碼?
互億無線不提供接碼服務(wù),接碼用戶請勿點擊開通按鈕。
×