登录 注册 注册领取7天免费IP
资讯与帮助文档
使用教程 API文档 SDK示例 IP资讯
如果有任何问题,请联系我们的客服,会有专人为您服务解答。希望九零科技的产品服务能带给您安全便利!

IP合作商API签名示例代码 —— python语言

签名算法

签名算法
加密方式 RSA
加密方法 SHA1
长度 2048
格式 PKCS1v15
私钥 private_key_pem

构造签名

参数 类型 必填 说明
RsaNo string 合作商编号
Time int 当前时间戳
.... .... 每个接口需要的参数

每次接口请求之前都需要构造签名获得token,将token带入header头部正常请求接口

下面是python语言签名示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import time
import json
import base64
import requests
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives.serialization import load_pem_private_key

# 常量定义
API_URL = "https://www.90daili.com/Api/ProjectList"  # API地址
RSA_ID = "********"  # 用户编号,根据实际情况替换
PRIVATE_KEY_PATH = "private.pem"  # 私钥文件路径

def load_pem(path):
    """加载私钥文件"""
    with open(path, 'rb') as f:
        return f.read()

def sign_rsa(data, private_key_pem):
    """对提供的数据进行RSA签名"""
    try:
        # 加载私钥
        private_key = load_pem_private_key(private_key_pem, password=None)

        # 计算签名
        signature = private_key.sign(
            data.encode('utf-8'),
            padding.PKCS1v15(),
            hashes.SHA1()
        )

        # Base64编码
        return base64.b64encode(signature).decode('utf-8')
    except Exception as e:
        print(f"签名错误: {e}")
        return None

def generate_token(request_body, private_key_path):
    """生成请求体和签名Token"""
    try:
        private_key = load_pem(private_key_path)
        token = sign_rsa(request_body, private_key)
        return token
    except Exception as e:
        print(f"生成token错误: {e}")
        return None

def main():
    # 生成请求体
    request_body = json.dumps({
        "Time": int(time.time()),
        "RsaNo": RSA_ID
    }, separators=(',', ':'))

    # 签名Token
    token = generate_token(request_body, PRIVATE_KEY_PATH)
    if not token:
        print("Token生成失败")
        return

    # 设置headers
    headers = {
        "Content-Type": "application/json",
        "Token": token
    }

    # 发送请求
    try:
        response = requests.post(API_URL, data=request_body, headers=headers)
        print(response.text)
    except Exception as e:
        print(f"请求发送错误: {e}")

if __name__ == "__main__":
    main() 

如有疑问,请联系九零IP在线客服

九零代理IP —— 全球高速代理,助力您的商业腾飞!

🌍 覆盖全球,高速稳定
九零代理IP拥有海量优质IP资源,覆盖国内300+城市地区,高速稳定,匿名性强,满足您的游戏搬砖、自媒体、数据采集、SEO优化、广告投放等多场景需求!

🔒 安全可靠,专业保障
采用高匿名加密技术,严格保护用户隐私,确保您的网络操作安全无忧。7×24小时专业技术支持,随时为您解决后顾之忧!

💼 商业合作,互利共赢
诚邀企业、开发者、跨境电商、营销团队等合作伙伴,共同开拓市场!我们提供灵活的合作方案,定制化服务,助力您的业务高效增长!

📩 联系我们
九零IP官网:www.90daili.com 微信:19871648261、 QQ:639317776

选择九零代理IP,携手共赢未来! 🚀

上一篇:IP合作商API签名示例代码 —— go语言 下一篇:IP合作商API签名示例代码 —— PHP语言