⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hashreplacement.m

📁 在图像加密中用到的md5算法
💻 M
字号:
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);

    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -