Algoritam MD5 u Matlabu

Algoritam MD5 u Matlabu

offline
  • Pridružio: 05 Sep 2008
  • Poruke: 3
  • Gde živiš: Novi Beograd

Hitno mi je potraban izvorni kod algoritma MD5 u Matlabu.

Unapred hvala!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • soxxx 
  • Prijatelj foruma
  • Pridružio: 25 Maj 2005
  • Poruke: 1482
  • Gde živiš: Gracanica, Kosovo

Dobar dan, kako ste? Ja sam jelovikpro, i novi sam clan ovde. Dal neko ima vremena, i zna gde mogu da nadjem link do nekog primera implementacije MD5 hash algoritma u MATLAB-u? Unapred hvala. Smile

Pogledaj ovde: http://www.mathworks.com/matlabcentral/fileexchang.....or-sha-512

Imas i ovde primer (nije kompletan): http://rosettacode.org/wiki/MD5#MATLAB

Za kraj, imas na Wikipediji pseudo kod, pa ako poznajes MATLAB mozes da probas sam da odradis nesto. Wink

Pozdrav i dobrodosao.



offline
  • Pridružio: 05 Sep 2008
  • Poruke: 3
  • Gde živiš: Novi Beograd

Hvala soxxx!!!

Ali, kod sa prvog linka sam detaljno prekucao i ne radi, ne znam zasto... (a i taj kod nije tacan,pise tako) a drugi link je trenutno neaktivan pa cu pokusati kasnije. U svakom slucaj hvala!

Za slucaj da neko ima bilo kakav predlog svaka pomoc mi je dobrodosla...

offline
  • soxxx 
  • Prijatelj foruma
  • 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);

offline
  • Pridružio: 05 Sep 2008
  • Poruke: 3
  • Gde živiš: Novi Beograd

Soxxx, mnogo hvala na pomoci i izvini za cimanje ali...

i dalje nije aktivan link
mathworks.com/outage_schedule.html
pa cu pokusati kasnije, mozda proradi...

kod
rosettacode.org/wiki/MD5#MATLAB
(iako nije tacan) meni i dalje izbacuje gresku. Pokusao sam i u kombinaciji sa ovim kodom koji si mi naknadno poslao ali nista...

E sada, ucitao sam samo ovaj zadnji kod koji si mi poslao i nema
sintaksnih gresaka ali nakon pokretanja Matlab mi izbacuje ovo

Input File (in ASCII format)? The quick brown fox jumped over the lazy dog's back
Output File for md5 Hash? e38ca1d920c4b8b8d3946b2c72f01680
??? Error using ==> fread
Invalid file identifier. Use fopen to generate a valid file identifier.

Error in ==> drugi at 6
M = fread(fid);

Mozda ja u startu gresim ali ne znam u cemu je problem, pa ako mozda znas u cemu je fora, pomagaj...

P.S Ja radim u 64b Matlabu a ovo je za 32 bita racunare ; mozda je problem u tome?

offline
  • soxxx 
  • Prijatelj foruma
  • Pridružio: 25 Maj 2005
  • Poruke: 1482
  • Gde živiš: Gracanica, Kosovo

Ne bratanac, neznam u cemu je problem. Ono sto sam ti poslao sam nasao pukim googlanjem.
Izgleda da je fajl koji sam okacio ispravan, ali dali zahteva jos nesto, ili se negde treba uklopiti - neznam. Ja sam mislio da ti barem malo poznajes MATLAB, i da ce ti to pomoci da brze savladas problem, a ne da ti dam neko gotovo resenje. Wink

Ko je trenutno na forumu
 

Ukupno su 518 korisnika na forumu :: 4 registrovanih, 0 sakrivenih i 514 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: dragoljub11987, havoc995, Ognjen D., volimpivuvolimrakiju