Adding password key on steganography matlba

Discussion in 'Programmer's Corner' started by nick_trovald, Jan 20, 2014.

  1. nick_trovald

    Thread Starter New Member

    Jan 20, 2014
    1
    0
    Hi everyone, I do steganography on matlab based pixel value differencing method. The embedd/extract process run properly.

    But in case I need to add password key as the protection, here is my sample code, need your advice for password key on steganography matlab. thanks :)

    Code ( (Unknown Language)):
    1.  
    2. function[capa,opfile,full,file]= proses_embedd(P1,Q)
    3. P=imread(P1);
    4. [Pm,Pn]=size(P);
    5. I=P;
    6. fid=fopen(Q,'rt');
    7. [X1,co]=fread(fid,'*char');
    8. r=1;
    9.  
    10. for q=1:co
    11.    L(q)=uint8(X1(q));
    12. end;
    13.  
    14. for q=1:co
    15.     W(r:r+7)=dec2bin(L(q),8);
    16.     r=r+8;
    17. end;
    18.  
    19. file=r-1;
    20. x=0;
    21.  
    22. for i=1:Pm
    23.     if x>=(r-1)
    24.         break;
    25.     end;
    26.    
    27.     for j=1:2:Pn-1
    28.         if x>=(r-1)
    29.             break;
    30.         end;
    31.        
    32.         p11=double(I(i,j));
    33.         p21=double(I(i,j+1));
    34.         d0=(p11-p21);
    35.        
    36.         if abs(d0)<8
    37.             w0=8;
    38.             l0=0;
    39.         elseif abs(d0)<16&&abs(d0)>7
    40.             w0=8;
    41.             l0=8;
    42.         elseif abs(d0)>15&&abs(d0)<32
    43.             w0=16;
    44.             l0=16;
    45.         elseif abs(d0)>31&&abs(d0)<64
    46.             w0=32;
    47.             l0=32;
    48.         elseif abs(d0)>63&&abs(d0)<128
    49.             w0=64;
    50.             l0=64;
    51.         elseif abs(d0)>127&&abs(d0)<256
    52.             w0=128;
    53.             l0=128;
    54.         else
    55.             w0=0;
    56.         end;
    57.        
    58.         if(w0>0)
    59.             t0=floor(log2(w0));
    60.         else
    61.             t0=0;
    62.         end;
    63.        
    64.         if(t0>0)
    65.             if(x<(r-1) && x+t0>(r-1))
    66.                 b0=bin2dec(W(x+1:(r-1)));
    67.                 d00=l0+b0;
    68.                 m0=abs(d00-abs(d0));
    69.                
    70.                 if((p11>=p21)&&(d00>abs(d0)))
    71.                     p00=p11+ceil(m0/2);
    72.                     p01=p21-floor(m0/2);
    73.                 end;
    74.                
    75.                 if((p11<p21)&&(d00>abs(d0)))
    76.                     p00=p11-floor(m0/2);
    77.                     p01=p21+ceil(m0/2);
    78.                 end;  
    79.                
    80.                 if((p11>=p21)&&(d00<=abs(d0)))
    81.                     p00=p11-ceil(m0/2);
    82.                     p01=p21+floor(m0/2);
    83.                 end;
    84.                
    85.                 if((p11<p21)&&(d00<=abs(d0)))
    86.                     p00=p11+ceil(m0/2);
    87.                     p01=p21-floor(m0/2);
    88.                 end;  
    89.                
    90.                 block=1;
    91.                 x=r-1;
    92.             end;
    93.            
    94.             if(x+t0)<=(r-1)
    95.                  b0=bin2dec(W(x+1:x+t0));
    96.                  d00=l0+b0;
    97.                  m0=abs(d00-abs(d0));
    98.  
    99.                  if((p11>=p21)&&(d00>abs(d0)))
    100.                      p00=p11+ceil(m0/2);
    101.                      p01=p21-floor(m0/2);
    102.                  end;
    103.  
    104.                  if((p11<p21)&&(d00>abs(d0)))
    105.                      p00=p11-floor(m0/2);
    106.                      p01=p21+ceil(m0/2);
    107.                  end;  
    108.  
    109.                  if((p11>=p21)&&(d00<=abs(d0)))
    110.                      p00=p11-ceil(m0/2);
    111.                      p01=p21+floor(m0/2);                  
    112.                  end;
    113.  
    114.                  if((p11<p21)&&(d00<=abs(d0)))
    115.                      p00=p11+ceil(m0/2);
    116.                      p01=p21-floor(m0/2);
    117.                  end;
    118.                  block=1;
    119.                  x=x+t0;          
    120.             end;
    121.         end;
    122.        
    123.         if block==1
    124.             p0=p00;
    125.             p1=p01;
    126.             I(i,j)=p0;
    127.             I(i,j+1)=p1;
    128.         end;
    129.     end;
    130. end;
    131.  
    132. if((i==Pm)&&(j>=Pn-20))
    133.     full=0;
    134. else
    135.     full=1;
    136. end;
    137.  
    138. capa=x;
    139. capacity=dec2bin(capa,20);
    140. s=1;
    141. i=Pm;
    142. j=Pn-20;
    143.  
    144. while(s<21)
    145.     temp1=dec2bin(I(i,j),8);
    146.     temp1(8)=capacity(s);
    147.     I(i,j)=bin2dec(temp1);
    148.     s=s+1;
    149.     j=j+1;
    150. end;
    151.  
    152. answer = inputdlg('output image name');
    153. answer1=strcat(answer,'.bmp');
    154. imwrite(I,char(answer1),'bmp');
    155. opfile=char(answer1);
    156.  
    157.  
     
    Last edited: Jan 20, 2014
Loading...