offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
Mislim da je ovo fajl koji nije dostupan na tom sajtu, vidi dal je to to:
fname=input('Input File (in ASCII format)? ','s');
hash_foutname=input('Output File for md5 Hash? ','s');
t1=clock;
%Open the input file and get the first line of data
fid=fopen(fname);
M = fread(fid);
fclose(fid);
ini=dec2bin(M(1),8);
for ii = 2:length(M)
ini=cat(2,ini,dec2bin(M(ii),8));
end
s2=length(ini)/8;
block_temp = [ ini, ...
'1', ...
num2str(zeros(mod(448-1-s2*8,512),1))' ...
dec2bin(s2*8,64) ];
nb=length(block_temp)/512;
block = reshape(block_temp,512,nb)';
for i=1:64
T(i)=cellstr(dec2hex(floor(2^32*abs(sin(i))),8));
end
for b=1:nb
H = [ '01','23','45','67';...
'89','ab','cd','ef';...
'fe','dc','ba','98';...
'76','54','32','10'];
H1=H;
inp=reshape(block(b,:),32,16)';
%disp('round1');
%Round1
shift=7;
for i=1:16
a=tarr(H(1,:));
b=tarr(H(2,:));
c=tarr(H(3,:));
d=tarr(H(4,:));
a=d;
d=c;
c=b;
t1= bin2dec2(f('round1',b,c,d));
t2= bin2dec2(tarr(T(i)));
t3= bin2dec2(inp(i,:));
t4=b;
anst=dec2bin(mod(t1+t2+t3+t4,2^32),32);
ans=cls(anst,shift);
b=dec2bin(mod(bin2dec2(ans)+bin2dec2(b),2^32),32);
if shift==22
shift=7;
else shift=shift+5;
end
H=updateH(H,a,b,c,d);
end
%Round2
shift=5;shi=0;
for i=17:32
%disp('round2');
a=tarr(H(1,:));
b=tarr(H(2,:));
c=tarr(H(3,:));
d=tarr(H(4,:));
a=d;
d=c;
c=b;
t1= bin2dec2(f('round2',b,c,d));
t2= bin2dec2(tarr(T(i)));
itemp=mod((1+5*i),16)+1;
t3= bin2dec2(inp(itemp,:));
t4=b;
anst=dec2bin(mod(t1+t2+t3+t4,2^32),32);
ans=cls(anst,shift);
b=dec2bin(mod(bin2dec2(ans)+bin2dec2(b),2^32),32);
shi=shi+1;
if shift==20
shift=5;shi=0;
else shift=shift+3+shi;
end
H=updateH(H,a,b,c,d);
end
count=1;
%Round3
for i=33:48
%disp('round3');
a=tarr(H(1,:));
b=tarr(H(2,:));
c=tarr(H(3,:));
d=tarr(H(4,:));
a=d;
d=c;
c=b;
t1= bin2dec2(f('round3',b,c,d));
t2= bin2dec2(tarr(T(i)));
itemp=mod((5+3*i),16)+1;
t3= bin2dec2(inp(itemp,:));
t4=b;
anst=dec2bin(mod(t1+t2+t3+t4,2^32),32);
if count==1
shift=4;
elseif count==2
shift=11;
elseif count==3
shift==16;
elseif count==4
shift=23;
end
ans=cls(anst,shift);
b=dec2bin(mod(bin2dec2(ans)+bin2dec2(b),2^32),32);
H=updateH(H,a,b,c,d);
if count==4
count=0;
end
count=count+1;
end
%Round4
shift=6;shi=0;
for i=49:64
% disp('round4');
a=tarr(H(1,:));
b=tarr(H(2,:));
c=tarr(H(3,:));
d=tarr(H(4,:));
a=d;
d=c;
c=b;
t1= bin2dec2(f('round4',b,c,d));
t2= bin2dec2(tarr(T(i)));
itemp=mod(7*i,16)+1;
t3= bin2dec2(inp(itemp,:));
t4=b;
anst=dec2bin(mod(t1+t2+t3+t4,2^32),32);
ans=cls(anst,shift);
shi=shi+1;
if shift==21
shift=6;shi=0;
else shift=shift+3+shi;
end
b=dec2bin(mod(bin2dec2(ans)+bin2dec2(b),2^32),32);
H=updateH(H,a,b,c,d);
end
H1=calculate_new_md5(H1,a,b,c,d);
end
disp(H1);
t2=clock;
timedur=t2-t1;
etime(clock,timedur)
fid=fopen(hash_foutname,'w+');
fprintf(fid,'%s',H1(1,:));
fprintf(fid,'%s',H1(2,:));
fprintf(fid,'%s',H1(3,:));
fprintf(fid,'%s',H1(4,:));
fclose(fid);
|