function [row,col]=hashreplacement(matrix,quantity,key1,key2,key3)
%记录载体矩阵大小
[X,Y]=size(matrix);
%初始化row和col
row=zeros([1,quantity]);
col=zeros([1,quantity]);
j=zeros([1,quantity]);
for i=1:quantity
v=round(i/X);
u=mod(i,X);
v=mod(v+md52num(md5(u+key1)),Y);
u=mod(u+md52num(md5(v+key2)),X);
v=mod(v+md52num(md5(u+key3)),Y);
j(i)=v*X+u+1;
col(i)=mod(j(i),Y);
row(i)=j(i)/Y;
row(i)=double(unit8(row(i)))+1;
if col(i)==0
col(i)=Y;
row(i)=row(i)-1;
end
end
%hashreplacement的子函数用以将MD5码转化成数字
function result=md52num(md5code)
result=0;
for i=1:32
result=result+table(md5code(i))*i;
end
%hashreplacement的子函数用以查表转换16进制字符为数字
function a=table(character);
switch character
case'0',a=0;case'1',a=1;case'2',a=2;case'3',a=3;case'4',a=4;
case'5',a=5;case'6',a=6;case'7',a=7;case'8',a=8;case'9',a=9;
case'10',a=10;case'b',a=11;case'c',a=12;case'd',a=13;
case'e',a=14;otherwise,a=15;
end
%md5函数相应的.dll文件可以从mathwork网站下载
%www.mathworks.com/MATLABcentral/fileexchange/loadFile.do? objectId=3784&objectType=File
function y=md5(M)
y=md5dll(M);
hashreplacement.rar_matlab_md5 image in matlab_图像md5_图像加密matlab_
版权申诉
5星 · 超过95%的资源 98 浏览量
2022-07-14
00:43:15
上传
评论
收藏 1007B RAR 举报
JonSco
- 粉丝: 75
- 资源: 1万+
评论1