python加密

get

url + ? +参数
eg:url?a=1&b=2

  1. 取参
  2. 排序
  3. 将参数拼成字符串:a=1&b=2,再用MD5将字符串和校验唯一码key拼接,再加密。MD5(a=1&b=2 + key)=sign
  4. 将参数和sign加到url中。url?参数&sign

post

url + ?+ sign=…
1.将传入的json的body中的内容组成字典,然后将字典的键值对拼成一个字符串。
2.再用MD5将字符串和校验唯一码key拼接,再加密。MD5(a=1&b=2 + key)=sign

在这里插入图片描述

def generate_signature(json_data):
    md_obj = hashlib.md5()

    sign_dict = deepcopy(json_data)
    if "sign" in sign_dict.keys():
        sign_dict.pop('sign')
    # 将请求参数按字母排序
    sign_list = [[k, sign_dict[k]] for k in sorted(sign_dict.keys())]

    sign_str = ""

    # 将参数拼成键值对字符串
    for key, part in enumerate(sign_list):
        period_str = f'{part[0]}={part[1]}&'
        if key == len(sign_list) - 1:
            period_str = period_str[:-1]
        sign_str += period_str

    sign_str += IOT_SECRET_KEY
    md_obj.update(sign_str.encode('utf-8'))

    return md_obj.hexdigest()
### Python 中的加密方法或库 Python 提供了多种用于数据保护和隐私增强的加密方法及库。以下是几种常见的加密技术及其对应的实现库: #### 1. Cython Cython 是一种编译型语言,可以将 Python 代码转换为 C 扩展模块。通过这种方式,不仅可以提高性能,还可以防止源代码泄露。这种方法适合于需要隐藏逻辑的核心部分[^1]。 ```python import cython @cython.cclass class EncryptedClass: @cython.cfunc def encrypt(self, data): pass ``` #### 2. PyCryptodome PyCryptodome 是一个功能强大的加密库,支持对称加密、非对称加密、哈希函数等多种操作。其设计目标是对标准库 `cryptography` 的替代版本,兼容性强且易于使用[^2]。 ##### AES 对称加密示例: ```python from Crypto.Cipher import AES from Crypto.Random import get_random_bytes key = get_random_bytes(16) cipher = AES.new(key, AES.MODE_EAX) data = b"Secret message" nonce = cipher.nonce ciphertext, tag = cipher.encrypt_and_digest(data) print(f"Ciphertext: {ciphertext}") ``` #### 3. Cryptography `cryptography` 是另一个广泛使用的加密库,提供了高级接口(如 Fernet)以及低级接口(即 Hazmat 层)。Fernet 实现了一种基于最佳实践的方法来加密数据,但它不适合处理大文件,因为需要一次性加载整个缓冲区到内存中[^3]。 ##### 使用 Fernet 进行简单加密/解密: ```python from cryptography.fernet import Fernet key = Fernet.generate_key() cipher_suite = Fernet(key) text = b"My secret text" encrypted_text = cipher_suite.encrypt(text) decrypted_text = cipher_suite.decrypt(encrypted_text) print(f"Encrypted Text: {encrypted_text.decode()}") print(f"Decrypted Text: {decrypted_text.decode()}") ``` #### 4. RSA 非对称加密 RSA 是一种经典的公钥加密算法,在许多场景下被广泛应用。可以通过 OpenSSL 工具生成私钥并将其导入至程序中完成加解密过程[^5]。 ##### 密钥生成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值