python实现对图像加密
时间: 2023-07-12 10:12:40 浏览: 105
基于python实现混沌系统和DNA编码的彩色数字图像加密
5星 · 资源好评率100%
图像加密是将图像数据通过一定的算法进行转换,使得只有经过解密操作后才能够还原成正常的图像。以下是一个简单的Python实现对图像加密的示例:
```python
from PIL import Image
import numpy as np
# 加密函数
def encrypt(img_path, key):
# 打开图像并转换为灰度图
img = Image.open(img_path).convert('L')
# 将图像转换为numpy数组
img_arr = np.array(img)
# 对图像数据进行加密
encrypted_arr = img_arr ^ key
# 将加密后的图像数据转换为图像
encrypted_img = Image.fromarray(encrypted_arr, mode='L')
# 保存加密后的图像
encrypted_img.save('encrypted.png')
# 解密函数
def decrypt(img_path, key):
# 打开加密后的图像并转换为灰度图
img = Image.open(img_path).convert('L')
# 将图像转换为numpy数组
img_arr = np.array(img)
# 对加密后的图像数据进行解密
decrypted_arr = img_arr ^ key
# 将解密后的图像数据转换为图像
decrypted_img = Image.fromarray(decrypted_arr, mode='L')
# 保存解密后的图像
decrypted_img.save('decrypted.png')
# 测试代码
img_path = 'test.png' # 待加密的图像路径
key = 123 # 加密密钥
encrypt(img_path, key) # 加密图像
decrypt('encrypted.png', key) # 解密图像
```
上述代码中,我们使用了Python图像处理库Pillow来打开、处理和保存图像。加密和解密的核心操作是将图像转换为numpy数组,并对其进行异或操作。加密和解密的过程是对称的,只需使用相同的密钥即可还原出原始图像。
阅读全文