有人可以帮我检查并更正我的代码吗...在这里我试图加密图像并成功完成(我的图像带有黑点)。然而,当我试图解密它时,我无法恢复原始图像(我得到了带蓝点的图像)。我认为解密部分有错,我不知道它是什么。有人能帮我吗。 :D
以下是我的代码:
inImg = double(imread('images/Me.jpg'));
imshow('images/Me.jpg');
s = size(inImg);
% Encryption:
enImg = ones(s);
for u=1:s(1) % iterate over each row
for v=1:s(2) % iterate over each column
enImg(u,v) = i_encrypt(inImg(u,v),n,e);
end
end
for u=1:numel(inImg)
enImg(u) = i_encrypt(inImg(u),n,e);
end
figure;imshow(enImg);
% Decryption:
deImg = ones(s);
for u = 1:s(1)
for v=1:s(2)
deImg(u,v) = i_decrypt(enImg(u,v),n,d);
end
end
for i = 1:s
deImg(i)= i_decrypt(enImg(i),n,d);
end
figure;imshow(deImg);
% Function
function en = i_encrypt(in,n,e)
en=1;
for i=e:-1:1
en=rem(en*in,n);
end
% Function
function de = i_decrypt(en,n,d)
de=1;
for i=d:-1:1
de=rem(de*en,n);
end
运行代码时,我用数字替换n,e和d。