noticePicTech AI 两周年庆+会员首发,高质量译图降价 60% 回馈用户!

验签方式

为确保 API 请求的安全性,所有请求需进行签名验证。每个用户会分配一个唯一的 AccountId 和一个对应的 SecretKey。
签名步骤:
1. 服务端根据请求中提供的 AccountId 找到对应的 SecretKey。
2. 将所有请求参数(除 Signature 外)按字典序排序,并组成键值对字符串,格式为 key1=value1&key2=value2。
3. 在参数字符串后追加密钥(SecretKey),例如 param_string&SecretKey=your_secret_key。
4. 对拼接后的字符串使用 HMAC-SHA256 算法生成签名,并将结果转换为 Base64 编码。
5. 将生成的签名作为 Signature 参数加入请求中。
Python 签名示例
import hmac
import hashlib
import base64

def generate_signature(params, secret_key):
    # 注意:AccountId 也要参与签名计算
    sorted_params = sorted(params.items())
    # 过滤掉值为空的参数和 Signature 参数
    param_string = "&".join(f"{k}={v}" for k, v in sorted_params if v and k != 'Signature')
    sign_string = f"{param_string}&SecretKey={secret_key}"
    signature = hmac.new(secret_key.encode('utf-8'), sign_string.encode('utf-8'), hashlib.sha256).digest()
    return base64.b64encode(signature).decode('utf-8')

# 示例参数
params = {
    "AccountId": "your_access_key_id",
    "ImageUrl": "https://example.com/example.jpg",
    "SourceLanguage": "CHS",
    "TargetLanguage": "ENG"
}
secret_key = "your_secret_key" # <-- 这个是保密的,不通过网络传输
signature = generate_signature(params.copy(), secret_key) # 传入副本以防修改原字典
print("Signature:", signature)