实现数字图像加密MATLAB
时间: 2023-08-28 10:06:42 浏览: 112
数字图像加密可以使用MATLAB中的一些加密算法,比如AES,DES等。
以下是使用AES加密和解密数字图像的示例代码:
加密:
```matlab
% 读入图像
img = imread('lena.tif');
% 将图像转为一维数组
img_vec = img(:);
% 生成随机密钥
key = randi([0, 255], 1, 16);
% 使用AES加密算法加密图像数组
enc_img_vec = aesencrypt(img_vec, key);
% 将加密后的数组转换为图像
enc_img = reshape(enc_img_vec, size(img));
% 保存加密后的图像
imwrite(enc_img, 'enc_lena.tif');
```
解密:
```matlab
% 读入加密后的图像
enc_img = imread('enc_lena.tif');
% 将加密后的图像转为一维数组
enc_img_vec = enc_img(:);
% 生成密钥
key = randi([0, 255], 1, 16);
% 使用AES加密算法解密图像数组
dec_img_vec = aesdecrypt(enc_img_vec, key);
% 将解密后的数组转换为图像
dec_img = reshape(dec_img_vec, size(enc_img));
% 保存解密后的图像
imwrite(dec_img, 'dec_lena.tif');
```
其中,`aesencrypt`和`aesdecrypt`是自定义的AES加密和解密函数。
阅读全文