logistic映射算法实现图像加密的python代码
时间: 2023-06-18 22:03:19 浏览: 131
在Python中使用 RSA算法进行 图像加密_Jupyter _python代码_下载
5星 · 资源好评率100%
下面是使用logistic映射实现图像加密的Python代码:
```python
import numpy as np
from PIL import Image
def logistic_map(x, r):
return r * x * (1 - x)
def encrypt_image(image_path, key, num_iterations):
# 读入图像
img = Image.open(image_path)
img_array = np.array(img)
# 初始化logistic映射的种子
seed = logistic_map(key, 3.999)
# 对每个像素进行加密
for i in range(num_iterations):
# 使用logistic映射生成伪随机数
seed = logistic_map(seed, 3.999)
# 将伪随机数转换到像素坐标
x = int(seed * img_array.shape[0])
y = int(seed * img_array.shape[1])
# 对像素值进行异或操作
img_array[x][y] = np.bitwise_xor(img_array[x][y], int(seed * 255))
# 保存加密后的图像
encrypted_img = Image.fromarray(img_array)
encrypted_img.save('encrypted_image.png')
if __name__ == '__main__':
encrypt_image('image.png', 0.1, 10000)
```
上述代码中,logistic_map函数实现了logistic映射算法,用于生成伪随机数。encrypt_image函数接受三个参数:图像路径、加密密钥、迭代次数。在函数内部,首先读入图像并将其转换为numpy数组。然后根据密钥初始化logistic映射的种子,并对每个像素进行加密。在加密过程中,使用logistic映射生成伪随机数,并将伪随机数转换到像素坐标,对像素值进行异或操作。最后,将加密后的图像保存到本地。
阅读全文