Python 在 Windows 系统下编程实现 RSA 算法对照片加密与解密:附代码及注意事项
```python from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP from Crypto.Hash import SHA256 from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto import Random from Crypto.Util.Padding import pad, unpad from PIL import Image def encrypt_image(input_image_path, output_image_path, key_size=2048): key = RSA.generate(key_size) public_key = key.publickey().export_key() cipher_rsa = PKCS1_OAEP.new(RSA.import_key(public_key)) with open(input_image_path, 'rb') as f: image_data = f.read() session_key = get_random_bytes(16) cipher_aes = AES.new(session_key, AES.MODE_CBC) encrypted_session_key = cipher_rsa.encrypt(session_key) cipher_text = cipher_aes.encrypt(pad(image_data, AES.block_size)) with open(output_image_path, 'wb') as f: f.write(public_key + encrypted_session_key + cipher_text) def decrypt_image(input_image_path, output_image_path): with open(input_image_path, 'rb') as f: private_key = RSA.import_key(f.read(2048)) encrypted_data = f.read() session_key = private_key.decrypt(encrypted_data[:private_key.size_in_bytes()]) cipher_aes = AES.new(session_key, AES.MODE_CBC) decrypted_data = unpad(cipher_aes.decrypt(encrypted_data[private_key.size_in_bytes():]), AES.block_size) with open(output_image_path, 'wb') as f: f.write(decrypted_data) input_image_path = 'input.jpg' encrypted_image_path = 'encrypted_image.jpg' decrypted_image_path = 'decrypted_image.jpg' encrypt_image(input_image_path, encrypted_image_path) decrypt_image(encrypted_image_path, decrypted_image_path) ``` 注意事项: 1. 确保安全存储和管理 RSA 私钥,不要泄露给他人。 2. 对于大型图片,考虑对图片进行分块处理以加快加密和解密过程。 3. 在处理图片时,建议使用合适的填充方式以避免数据被截取或损坏。 ######[AI写代码神器 | 1269点数解答 | 2025-01-05 18:37:09]
- Python实现AES加密解密:含代码示例与关键注意点(字节豆包 | 836点数解答 | 2025-10-14 16:35:32)66
- Python 在 Windows 系统下编程实现 RSA 算法对照片加密与解密(字节豆包 | 373点数解答 | 2025-01-05 18:35:28)362
- Python 在 Windows 系统下编程实现 RSA 算法对照片加密与解密:附代码及注意事项(GPT | 1269点数解答 | 2025-01-05 18:37:09)245
- Python在Windows系统下实现RSA算法对手写签名照片加密解密,附代码及关键逻辑 (GPT | 786点数解答 | 2025-01-05 18:37:20)306
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)458
- Python代码实现:绘制洁白无瑕水晶玫瑰,附示例代码与注意事项(字节豆包 | 447点数解答 | 2025-11-02 14:37:54)63
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)414
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)405
- Python 编程:开启无限可能的编程之旅!(阿里通义 | 19点数解答 | 2023-12-07 16:15:34)332
- 全套代码框架:用B4A与PHP打造手机多数据远程备份及GPS轨迹记录系统,附开发避雷指南 (DeepSeek | 1130点数解答 | 2025-08-19 19:40:09)147
- 超详细!B4A客户端与PHP服务端实现手机数据远程备份及GPS轨迹记录全代码揭秘(阿里通义 | 1773点数解答 | 2025-08-19 19:41:05)150