根据不同的实际应用场景,比如API接口中的参数加密对称加密速度快适合大量数据,非对称加密适合密钥交换,哈希用于验证数据完整性,数字签名用于身份认证等。...二、使用工具生成加密参数 (1) 代码生成 Python示例:# AES加密from Crypto.Cipher import AESimport base64def aes_encrypt(data:... str, key: str, iv: str) -> str: cipher = AES.new(key.encode(), AES.MODE_CBC, iv.encode()) pad_data...# 从环境变量获取密钥import oskey = os.getenv('API_SECRET_KEY') 参数化测试数据: 测试用例中维护明文数据,运行时动态加密。...def test_api_response(): response = call_api() encrypted_data = response.json()['data'] decrypted_data
请求体加密:业务参数(姓名、身份证号)需要组装成JSON格式,然后使用AES-128-CBC模式 (PKCS7填充) 加密。IV处理:加密时使用16字节的随机IV,并将 IV + 密文 拼接。...(payload_json: str) -> str: """ 使用 AES-128-CBC 加密业务数据 """ try: # 1....初始化加密器 cipher = AES.new(ACCESS_KEY, AES.MODE_CBC, iv) # 3....) -> str: """ 解密AES-128-CBC响应数据 """ try: # 1...., id_card: str): """ 调用天远API查询学历信息 """ # 1.
天远API的这一接口以其稳定性和数据深度脱颖而出,尤其适合中大型风控系统集成。本文旨在通过清晰的代码示例、结构解析和实际案例,指导你从参数加密到业务落地的全过程,让接入变得高效而直观。...t=13位毫秒时间戳(时间戳用于防重放)Header:Access-Id(你的账号凭证)和Content-Type:application/json安全机制简述参数需AES-128-CBC加密(PKCS7...="api.tianyuanapi.com/api/v1/JRZQ2F8A>"defencrypt_payload(payload:dict)->str:"""加密JSON参数:AES-CBC...cipher.decrypt(ciphertext)returnjson.loads(unpad(padded_plain,AES.block_size).decode('utf-8'))defcall_probe_api...(mobile:str,id_card:str,name:str,authorized:str="1")->dict:"""核心调用函数,含异常处理"""timestamp=str(int(time.time
编写企微应用 - 回调URL验证笔记 (qq.com) 前言 第一版是在2021-08-11 09:36:32写的,有点乱,优化下 验证需要搭建HTTP服务器,使用的框架为Python-Flask 通过API...企业微信回调URL验证请求格式 基本信息 假设企业的接收消息的URL设置为http://api.3dept.com。...企业管理员在保存回调配置信息时,企业微信会发送一条验证消息到填写的URL,请求内容如下: 请求方式:GET 请求地址:http://api.3dept.com/?...msg_signature=ASDFQWEXZCVAQFASDFASDFSS×tamp=13500001234&nonce=123412323&echostr=ENCRYPT_STR 参数说明...)、timestamp、nonce、encrypt参数按字母字典从小到大排序(用sort) 将排序后的参数按顺序拼接成一个字符串 将该字符串进行SHA-1计算 如果计算结果与请求中的msg_signature
方法一:请求头加密参数 /** * api_sk = 接口密钥 (在面板设置页面 - API 接口中获取) * request_time = 当前请求时间的 uinx 时间戳...($request_token); } 注意事项: header头参数不能带下划线 可以利用redis使sign失效,例如时间戳2秒内并且每个加密只可使用一次 方法二:openssl_encrypt...key = "1234567876666666"; $iv = "1112222211111121"; $decrypted = openssl_decrypt($encrypted, 'aes...($data,strlen($data) + 16 - strlen($data) % 16, "\0"); } $method = 'aes-128-cbc';//加密方法 $.../ 秘钥 var iv= CryptoJS.enc.Utf8.parse('1112222211111121');//向量iv var decrypted = CryptoJS.AES.decrypt
t=认证方式:通过 Access-Id(请求头) + Access Key(用于AES加密)参数传递:请求体中的 data 字段为 Base64 编码后的 AES-128-CBC 加密字符串加密规则..., access_key_hex: str) -> str: """ 使用 AES-128-CBC 加密明文,返回 Base64 编码字符串 :param plain_text: 明文...===def query_education_info(name: str, id_card: str, access_id: str, access_key: str): url = f"{int(time.time() * 1000)}" # 构造明文请求参数 payload = { "name": name, "id_card": id_card...该接口由天远API提供,具备高安全性(AES-128-CBC加密)、高准确性(对接权威学历数据库)和高可用性(无频率限制),适用于招聘、金融、政务、教育等多个关键场景。
加密方式是没有变的,通过js调试,我发现checkToken这个参数的值, 它是变化的,所以那时就一直想找到checkToken它的参数是怎么来的。找得头都大,位置大概知道了。...发现之前一直想解出的checkToken参数,不传也 可以成功登录。 不必要弄懂全部参数的加密方式,有时候这个参数后台不是判断的必要条件。...__get_random_str() def __AES_encrypt(self, text, key): ''' 获取到加密后的数据 :param...__AES_encrypt(encText, self.random_16_str) return encText def __get_encSecKey(self):...__getFormData(self.arg1_login) response = self.session.post(url=api, headers=headers, data=formdata
该接口采用先进的AES加密机制和标准化API设计,为教育机构、企业及政府部门提供一站式学历信息验证服务。...t=13位时间戳请求头参数:Access-Id: 账号的Access-Id(必填)请求体说明:所有业务参数需经过AES加密后Base64编码,并放入 data 字段中。...(data: dict, key: bytes) -> str: """ 使用AES-128-CBC加密并返回Base64字符串。...decrypt_data(encoded_str: str, key: bytes) -> dict: """ AES解密函数占位。..."xxxs": "普通全日制", "zymc": "其他" } ], "code": "9100" } }}四、字段详解(1)基础响应参数字段名含义说明
二、API接口调用示例本节将详细展示如何通过代码接入名下车辆车牌查询服务。该接口采用AES-128加密传输,确保用户隐私数据(如身份证号)在传输过程中的绝对安全。...请求体参数(身份证、姓名)需进行AES-128-CBC加密,并进行Base64编码。响应数据同样为加密字符串,需解密后查看。...JSON字符串(PKCS7填充)3.拼接IV+密文4.返回Base64编码字符串"""#TODO:开发者需在此处实现AES加密json_str=json.dumps(data_dict)print(f"...[Debug]正在加密参数:{json_str}...")return"Base64_Encrypted_String_Placeholder"defdecrypt_data(base64_str,key...1.基础返回参数字段名参数命名类型说明车辆数vehicleCountString名下车辆总数量车辆列表listList包含所有车辆信息的数组车牌号plateNumString完整的车牌号码(如:京A88888
该接口采用高安全性的AES-128加密传输机制,确保车辆隐私数据的安全性。1.调用说明接口地址:https://api.tianyuanapi.com/api/v1/QCXGP00W?...请求体参数需进行AES-128-CBC加密,并进行Base64编码。响应数据同样为加密字符串,需解密后使用。...AES-CBC模式加密JSON字符串(PKCS7填充)3.拼接IV+密文4.返回Base64编码字符串"""#实际开发请在此处实现AES加密逻辑json_str=json.dumps(data_dict...)print(f"[Debug]正在加密参数:{json_str[:50]}...")return"Base64_Encrypted_String_Placeholder"defdecrypt_data...(base64_str,key):"""1.Base64解码2.提取前16字节IV3.解密剩余密文4.去除填充,返回明文"""#实际开发请在此处实现AES解密逻辑return{"retcode":"000000
安全机制 (Body):所有业务参数(姓名、身份证、手机号)必须组合成一个JSON字符串。该JSON字符串随后通过 AES-128-CBC 模式加密。加密时使用16字节的随机IV(初始化向量)。...公共响应参数 (Common Response)无论业务成功或失败,API均会返回以下公共参数。字段名类型描述codeint业务状态码。0 表示业务成功,其他值表示失败或异常。...1002参数解密失败服务器无法解密 data 字段。请检查您的AES密钥、IV生成或填充方式是否正确。1003基础参数校验不正确检查 Access-Id 或时间戳 t 是否缺失或格式错误。...2001业务失败因其他业务逻辑(如参数不合规等)导致的失败。...开发者在接入时,应重点关注AES-128-CBC的加密和解密实现,确保 IV 的随机性和 PKCS7 填充的正确性。通过合理利用此API代码,企业能够有效降低信用风险,优化审批效率,实现精细化运营。
二、API接口调用示例2.1 调用说明个人信用分接口采用高安全级别的AES-128加密传输机制:请求方式:POST接口端点:https://api.tianyuanapi.com/api/v1/JRZQ0L85...t={13位时间戳}认证方式:请求头需携带 Access-Id(账号的访问凭证)加密算法:AES-128-CBC模式,PKCS7填充,随机IV传输格式:请求参数和响应数据均经过加密后Base64编码请求参数...生成13位时间戳 timestamp = str(int(time.time() * 1000)) # 6....(e)}") return None except Exception as e: print(f"处理异常: {str(e)}") return None...本文详细介绍了该API的完整接入流程,包括AES-128加密传输机制、请求响应数据结构、字段含义以及实际应用场景。
= AES.new(key=bytes(key, encoding="utf-8"), mode=2, iv=bytes(iv, encoding="utf-8")) res = aes.encrypt...__AES_encrypt(self.arg1, self.arg4) encText = self....__AES_encrypt(encText, self.random_16_str) return encText def __get_encSecKey(self):...) - 1) random_str += str_set[index] self.random_16_str = random_str def __getFormData...__getFormData() response = self.session.post(url=api, data=formdata, headers=headers)
= 1: # 正则表达式匹配到了参数,但是参数个数不对(不正常的情况) result_dict["ok"] = 0 else: # 匹配正常时将参数存到result_dict...[0] result_dict["b"] = aes_keys[1] result_dict["c"] = aes_keys[2] else:...printLog("防 CC 验证过程所需参数不符合要求,页面可能存在错误!")...# 打印输出当前ip地址 def print_my_ip(): api_url = "https://api.ipify.org/" try: res = requests.get...: str, messageContent: list): """ :type messageContent: list[str] """ api = "https:/
本文将作为一份完整的开发文档,详细解读 个人信用分API 的调用流程、参数加密机制、数据结构与字段说明,协助开发者快速完成集成与业务应用。二、API接口调用示例1....调用说明接口地址:https://api.tianyuanapi.com/api/v1/JRZQ0L85?...t=13位时间戳请求方式:POST请求头参数:Access-Id:用于身份验证的账号IDContent-Type:application/json请求参数需通过 AES-128-CBC 模式加密后进行...print("接口调用失败:", response_json.get("message")) except Exception as e: print("调用异常:", str...data参数解析错误1003基础参数校验不正确缺少必要字段或格式错误1004未经授权的IP当前IP未加入白名单1005缺少Access-Id未传入认证头信息1006未经授权的AccessId认证ID无效
举个例子: /api?param_1=xxx¶m_2=xxx,其中 param_1 和 param_2 是两个参数。...sn 是通过 App Secret 和 传递的参数 进行加密的。 最终传递的参数如下: /api?...("&%v=%v", key[i], params.Get(key[i])) } } return str } AES 对称加密 在使用前,咱们先了解下什么是对称加密?...常用算法:DES、AES。 其中 AES 是 DES 的升级版,密钥长度更长,选择更多,也更灵活,安全性更高,速度更快,咱们直接上手 AES 加密。...源码地址 https://github.com/xinliangnote/go-gin-api
加密机制说明API采用的AES-128加密方案具有以下特点:加密模式:AES-CBC,提供更强的安全性密钥长度:128位,平衡了性能与安全性填充方式:PKCS7填充,符合行业标准IV生成:每次加密随机生成...在实际开发中,你需要实现AES加密逻辑,将请求参数加密后再发送。Python实现示例Python作为数据处理和API集成的热门语言,这里提供一个完整的实现方案。.../api/v1/IVYZ3P9M>"def_aes_encrypt(self,plaintext):"""AES-CBC加密函数Args:plaintext:待加密的明文字符串Returns:Base64..._aes_encrypt(json.dumps(request_params))#准备请求timestamp=str(int(time.time()*1000))#13位时间戳url=f"{self.base_url...的使用情况:记录每次API调用的请求参数、响应结果、耗时等信息统计每天的调用次数和费用消耗,做好成本控制设置告警规则,当错误率超过阈值时及时通知相关人员总结学历信息查询API为企业提供了一个高效、准确的学历验证工具
二、API接口调用示例本接口采用金融级安全传输标准,要求请求体进行AES-128-CBC加密。由于涉及authorized(授权状态)等合规字段,开发者需严格遵守调用规范。...="api.tianyuanapi.com/api/v1/JRZQ8F7C>"def_encrypt(self,plain_dict):"""AES-128-CBC加密,IV拼接到密文前...):"""AES-128-CBC解密,提取前16位IV"""try:encrypted_data=base64.b64decode(base64_str)iv=encrypted_data[:16]cipher_text...(f"[解密错误]{e}")returnNonedefquery_comprehensive_risk(self,name,id_card,mobile):#1.构造参数(注意authorized字段)...,"riskCodeValue":...}]转为字典self.data_map={str(item.get("riskCode")):str(item.get("riskCodeValue"))foritemindata_list
:https://open.dewu.com/#/api/body?...:https://open.dewu.com/#/api/body?...Cipher cipher = Cipher.getInstance("AES"); //7.初始化密码器,第一个参数为加密(Encrypt_mode)或者解密(Decrypt_mode...Cipher cipher = Cipher.getInstance("AES"); //7.初始化密码器,第一个参数为加密(Encrypt_mode)或者解密解密(Decrypt_mode...) { return Base64.getDecoder().decode(str); }}
该接口的请求参数中 anti_content、captcha_collect 都经过了加密,verify_auth_token 是触发验证码之后,返回的识别标志:/api/phantom/user_verify...请求参数与 /api/phantom/obtain_captcha 接口基本相同,多了一个 verify_code,也就是点击的坐标:anti_content 参数的解决思路,网上有很多详解文章,跟栈就行了...captcha_collect 参数,分别是获取图片的接口 /api/phantom/obtain_captcha 和验证接口 /api/phantom/user_verify,本文将逐一分析。...加密算法(https://www.kgtools.cn/secret/aes):k、C 定义在 getPrepareToken 函数上的 init 函数中,写的很明显了 aes_key、aes_iv:...往上跟栈,发现 Za(c) 方法生成的 aes_key 和 aes_iv,c 就是前文提到的 /api/phantom/vc_pre_ck_b 接口响应返回的 salt 值:跟进去,将代码扣下来即可,也可以用