图像加密的代码
时间: 2023-08-06 15:12:34 浏览: 42
这里提供一种基于AES加密算法的图像加密代码示例,使用Python语言实现:
```python
from Crypto.Cipher import AES
import os
from PIL import Image
# 加密函数
def encrypt_image(filename, key):
# 读取图像文件
img = Image.open(filename)
img_data = img.tobytes()
# AES加密,ECB模式
cipher = AES.new(key, AES.MODE_ECB)
enc_data = cipher.encrypt(img_data)
# 保存加密后的图像文件
enc_img = Image.frombytes(img.mode, img.size, enc_data)
enc_filename = os.path.splitext(filename)[0] + "_enc" + os.path.splitext(filename)[1]
enc_img.save(enc_filename)
# 解密函数
def decrypt_image(filename, key):
# 读取加密后的图像文件
enc_img = Image.open(filename)
enc_data = enc_img.tobytes()
# AES解密,ECB模式
cipher = AES.new(key, AES.MODE_ECB)
dec_data = cipher.decrypt(enc_data)
# 保存解密后的图像文件
dec_img = Image.frombytes(enc_img.mode, enc_img.size, dec_data)
dec_filename = os.path.splitext(filename)[0] + "_dec" + os.path.splitext(filename)[1]
dec_img.save(dec_filename)
# 测试代码
if __name__ == '__main__':
# 设置密钥
key = b'this is a secret key'
# 加密图像文件
encrypt_image('test.png', key)
# 解密图像文件
decrypt_image('test_enc.png', key)
```
注意,此代码示例仅供学习和研究使用,实际使用中应该结合具体的需求和场景进行改进和优化。同时,由于图像加密算法的特殊性,还需要考虑图像的格式、大小、加密强度等因素。