From c1fa662552b97ca738b5113421d7f095ae8c8e05 Mon Sep 17 00:00:00 2001 From: wsy182 <2392948297@qq.com> Date: Tue, 25 Nov 2025 11:06:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(sign):=20=E6=94=AF=E6=8C=81=E5=A4=9A?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE=E5=92=8C=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E7=94=9F=E6=88=90=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增开发环境和生产环境的配置管理 - 移除参数中的空格替换逻辑 - 更新默认搜索键和用户类型 - 支持通过命令行参数切换运行环境 - 自动构建完整请求URL用于curl测试 - 添加环境选择提示和错误处理机制 --- generateSign.py | 52 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/generateSign.py b/generateSign.py index 37833c9..bd216de 100644 --- a/generateSign.py +++ b/generateSign.py @@ -3,11 +3,30 @@ import time import uuid import urllib.parse import hashlib +import sys + + +# =================== 运行环境配置 =================== +CONFIG = { + "dev": { + "platform_ifc_system_code": "ef5b17caff6e4da19d6af82d539e894d", + "systemCode": "57395d2bc668496c9c57d8f2b19bd516", + "appId": "57395d2bc668496c9c57d8f2b19bd516", + "secret_key": "KMFHKo1Uzrl&MWXorbQIT&C$Qea$uQOY", + "ifcUrl": "http://192.168.1.202:8083/dev-api/cenertech-interface-center/IFC2" + }, + "prod": { + "platform_ifc_system_code": "57395d2bc668496c9c57d8f2b19bd516", + "systemCode": "57395d2bc668496c9c57d8f2b19bd516", + "appId": "57395d2bc668496c9c57d8f2b19bd516", + "secret_key": "opS=K9Parlf&p+JxBOQD2q+zNZa+uXEE", + "ifcUrl": "https://dpc.cet.cnooc/prod-api/cenertech-interface-center/IFC2" + } +} # =================== MD5签名计算 =================== def calculate_md5(param, secret_key): - # Java 规则:MD5(secretKey + param) return hashlib.md5((secret_key + param).encode('utf-8')).hexdigest() @@ -36,8 +55,6 @@ def create_sign(param_map, secret_key): parts.append(f"{key}={val_str}") param = "&".join(parts) - - # Java逻辑: .replaceAll("\\s", "") param = "".join(param.split()) print("参数明文 param:", param) @@ -50,22 +67,31 @@ def create_sign(param_map, secret_key): # =================== Python 主程序 =================== if __name__ == '__main__': - platform_ifc_system_code = "9f5bbb73710c4a6a8923c278ffa00d50" - systemCode = "114ee506d80a479c8d106c4748d2d029" + # 选择 dev / prod + env = "dev" + if len(sys.argv) > 1: + env = sys.argv[1] + print(f"\n=== 当前环境:{env} ===\n") - appId = "114ee506d80a479c8d106c4748d2d029" - secret_key = "31z&h7IhG6gba@ptz=F8FSr+C5-*OHy6" + if env not in CONFIG: + print("❗ 错误:请使用 python sign.py dev 或 python sign.py prod") + sys.exit(1) + + cfg = CONFIG[env] + + systemCode = cfg["systemCode"] + appId = cfg["appId"] + secret_key = cfg["secret_key"] + platform_ifc_system_code = cfg["platform_ifc_system_code"] + ifcUrl = cfg["ifcUrl"] ts = str(int(time.time() * 1000)) randomString = uuid.uuid4().hex selector = { - "searchKeys": ["4555f083accb42c699fa222f85508404", "9bc5618ba6fa485aa2b3f88e37d34238", - "cf0e557530884526bd693341928885c6", "ffc7d0c4018b4c8cad0e8c70aae3698c", - "71985162af674df0bd1ca75d3e6e1984", "a704938ab033447ead129f1e7821d685", - "b761bd9a156a485ebed9a21c714b9807", "3fd5dd6c401b46e7b1178badb6723491", "13347", ], - "userType": "0", + "searchKeys": ["9cb864213c6f48ceaf90e98e7ca375e9","3DC1B33E1B5B431E99FA163BF9E86E6A","13336","b353614a47e2425a8a8885d270267407"], + "userType": "1", "hasCascade": True } @@ -80,9 +106,7 @@ if __name__ == '__main__': sign = create_sign(param_map, secret_key) - ifcUrl = "https://dpc.cet.cnooc/prod-api/cenertech-interface-center/IFC2" apiPath = "/userListByDeptSearch" - fullUrl = f"{ifcUrl}/{platform_ifc_system_code}{apiPath}" curl = f"""