在Web开发中,为了保护请求参数的安全性,经常需要对参数进行加密处理。下面我将介绍几种使用Python加密请求参数的常见方法。
python
| import hashlib | |
|---|---|
| import requests | |
| def encrypt_params_with_hash(params, secret_key): | |
| """使用SHA256哈希算法加密参数""" | |
| # 将参数按key排序并拼接 | |
| sorted_params = sorted(params.items(), key=lambda x: x[0]) | |
| param_str = ''.join([f"{k}{v}" for k, v in sorted_params]) + secret_key | |
| # 生成哈希值 | |
| hash_obj = hashlib.sha256(param_str.encode('utf-8')) | |
| signature = hash_obj.hexdigest() | |
| # 将签名加入原参数 | |
| new_params = params.copy() | |
| new_params['signature'] = signature | |
| return new_params | |
| # 示例使用 | |
| params = {'name': 'John', 'age': '30', 'city': 'New York'} | |
| secret_key = 'your_secret_key_here' | |
| encrypted_params = encrypt_params_with_hash(params, secret_key) | |
| # 发送请求 | |
| response = requests.get('api.example.com/data', params=encrypted_params) |
以上方法可以根据实际安全需求选择使用,哈希签名适用于验证参数完整性,AES适用于对称加密场景,RSA则适用于非对称加密需求。