您是否正受到短信签名报备的困扰?互亿无线解决方案让您最快15分钟内恢复信息传递,马上 注册体验

互亿无线 · 文档中心

API签名机制 - API文档


1、API 签名机制使用说明

为了保障数据安全和防止恶意调用,互亿无线的接口支持通过 HMAC-SHA256 算法进行签名认证。对于每一次HTTP或HTTPS协议请求,我们的网关将依据请求参数信息重新计算签名,通过对比该签名与请求中提供的签名是否一致,从而验证请求者的身份,以确保传输数据的完整性与安全性。开发者在调用 API 时,需按照本规范生成签名并放入请求头中。

2、什么是签名机制?

签名机制是对请求权限进行加密的过程,目的是:

  • 确认调用者身份真实可信
  • 提高系统的安全防护能力

3、签名流程总览

以下是签名生成和使用的 5 个步骤:

  • 准备请求关键信息
  • 拼接签名原文
  • 生成 HMAC-SHA256 签名
  • 构建 Authorization 请求头
  • 发起带签名的请求

① 准备请求关键信息

名称 示例 说明
接口地址 http://api.ihuyi.com/empty-number/balance 请求的接口 URL(不含参数),不同产品,地址是不同的
请求方法 GET 依据不同产品接口定义(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 参数
  • 时间必须是 GMT 格式,偏差超过 ±300 秒会导致签名失效

③ 生成签名

使用 APPSecret 对上一步的字符串执行 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

④ 构建 Authorization 请求头

将签名结果填写至 Authorization 字段中,格式如下:

Authorization: Signature keyId="平台的APIID", algorithm="加密方式", headers="加密的请求头字段名", signature="签名结果"


示例:

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

⑤ 发起完整请求

将签名后的请求头加入 HTTP 请求中,完成调用。

完整HTTP 请求结构:

名称 是否必选 描述 示例值
url 接口地址,不同产品,地址是不同的 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 请求体 请考产品的说明文档
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="

现在注册,即享新用户礼包!

在线咨询
电话咨询

服务热线:

4008 808 898

请按住滑块,拖动到最右边
提交成功
若短信发送异常,系统将自动给您发送语音验证码,请注意接听电话。

验证码已发送到您的手机,请查收!

输入验证码后,点击“开通体验账户”按钮可立即开通体验账户。

收不到短信验证码?
互亿无线不提供接码服务,接码用户请勿点击开通按钮。
×