超长文本解密,优化内存使用 :param message: 需要解密的数据 :param pri_key: 秘钥 :param length : 1024bit的证书用128,2048bit证书用256位 :return: 解密后的数据
(message, pri_key: str | None = None, length=256)
| 131 | |
| 132 | |
| 133 | def rsa_long_decrypt(message, pri_key: str | None = None, length=256): |
| 134 | """ |
| 135 | 超长文本解密,优化内存使用 |
| 136 | :param message: 需要解密的数据 |
| 137 | :param pri_key: 秘钥 |
| 138 | :param length : 1024bit的证书用128,2048bit证书用256位 |
| 139 | :return: 解密后的数据 |
| 140 | """ |
| 141 | if pri_key is None: |
| 142 | pri_key = get_key_pair().get('value') |
| 143 | |
| 144 | cipher = _get_cipher(pri_key) |
| 145 | base64_de = base64.b64decode(message) |
| 146 | |
| 147 | # 使用 bytearray 减少内存分配 |
| 148 | result = bytearray() |
| 149 | for i in range(0, len(base64_de), length): |
| 150 | result.extend(cipher.decrypt(base64_de[i:i + length], 0)) |
| 151 | |
| 152 | return result.decode() |
| 153 |
no test coverage detected