www.pudn.com > zishiyingjiami.rar > Amain.asv, change:2012-04-06,size:1582b


clear all; 
close all; 
clc; 
I=imread('lena128.bmp');[m,n]=size(I); 
I0(1:m/2,1:n/2)=I(1:m/2,1:n/2);            %左上角 
I1(1:m/2,1:n/2)=I(1:m/2,n/2+1:n);          %右上角 
I2(1:m/2,1:n/2)=I(m/2+1:m,n/2+1:n);        %右下角 
I3(1:m/2,1:n/2)=I(m/2+1:m,1:n/2);          %左下角 
x(1)=0.8386                                %输入第一个密码 
X=SC(x(1));                                %产生长为50的密钥流 
X=mod(round(abs(X)*2),2);                  %预处理产生整数混沌序列,理论上有4!种 
for i=1:5 
k=X(i); 
switch k 
    case 0 
        I=clock(I);                        %第一种加密顺序:左上→右上→右下→左下→左上 
    case 1 
        I=uclock(I);                       %第二种加密顺序:左上→左下→右下→右上→左上 
    case 2 
        I=X(I);                            %第三种加密顺序:左上→右下→右上→左下→左上 
%     case 3 
%         I=UX(I);                           %第四种加密顺序:左上→右上→左下→右下→左上 
   end 
end 
figure(1),imshow(uint8(I));title('加密'); 
figure(2),imhist(uint8(I));title('加密直方图'); 
%解密 
for i=5:-1:1 
    k=X(i); 
    switch k 
           case 0 
               I=declock(I);                        %第一种加密顺序:左上→右上→右下→左下→左上 
           case 1 
               I=deuclock(I);                       %第二种加密顺序:左上→左下→右下→右上→左上 
%     case 2 
%         I=X(I);                            %第三种加密顺序:左上→右下→右上→左下→左上 
%     case 3 
%         I=UX(I);                           %第四种加密顺序:左上→右上→左下→右下→左上 
   end  
end 
figure(2),imshow(uint8(I));title('解密');