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: [Link mogu videti samo ulogovani korisnici]

Imas i ovde primer (nije kompletan): [Link mogu videti samo ulogovani korisnici]

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:

  1. fname=input('Input File (in ASCII format)? ','s');
  2. hash_foutname=input('Output File for md5 Hash? ','s');
  3. t1=clock;
  4. %Open the input file and get the first line of data
  5. fid=fopen(fname);
  6. M = fread(fid);
  7. fclose(fid);
  8. ini=dec2bin(M(1),8);
  9. for ii = 2:length(M)
  10.   ini=cat(2,ini,dec2bin(M(ii),8));
  11. end
  12. s2=length(ini)/8;
  13. block_temp = [ ini, ...
  14.                '1', ...
  15.                num2str(zeros(mod(448-1-s2*8,512),1))' ...
  16.               dec2bin(s2*8,64) ];
  17.           nb=length(block_temp)/512;
  18. block = reshape(block_temp,512,nb)';
  19. for i=1:64
  20.     T(i)=cellstr(dec2hex(floor(2^32*abs(sin(i))),8));
  21. end
  22.  
  23. for b=1:nb
  24. H = [ '01','23','45','67';...
  25.     '89','ab','cd','ef';...
  26.     'fe','dc','ba','98';...
  27.     '76','54','32','10'];
  28. H1=H;
  29.  
  30. inp=reshape(block(b,:),32,16)';
  31. %disp('round1');
  32. %Round1
  33. shift=7;
  34. for i=1:16
  35.  
  36.    
  37. a=tarr(H(1,:));
  38. b=tarr(H(2,:));     
  39. c=tarr(H(3,:));     
  40. d=tarr(H(4,:));
  41.   a=d;
  42.   d=c;
  43.   c=b;
  44.  
  45. t1= bin2dec2(f('round1',b,c,d));
  46. t2= bin2dec2(tarr(T(i)));
  47. t3= bin2dec2(inp(i,:));
  48. t4=b;
  49. anst=dec2bin(mod(t1+t2+t3+t4,2^32),32);
  50. ans=cls(anst,shift);
  51. b=dec2bin(mod(bin2dec2(ans)+bin2dec2(b),2^32),32);
  52. if shift==22
  53.   shift=7;
  54. else shift=shift+5;
  55. end
  56. H=updateH(H,a,b,c,d);
  57. end
  58. %Round2
  59. shift=5;shi=0;
  60. for i=17:32
  61. %disp('round2');
  62. a=tarr(H(1,:));
  63. b=tarr(H(2,:));     
  64. c=tarr(H(3,:));     
  65. d=tarr(H(4,:));
  66.    
  67.   a=d;
  68.   d=c;
  69.   c=b;
  70.  
  71. t1= bin2dec2(f('round2',b,c,d));
  72. t2= bin2dec2(tarr(T(i)));
  73. itemp=mod((1+5*i),16)+1;
  74. t3= bin2dec2(inp(itemp,:));
  75. t4=b;
  76. anst=dec2bin(mod(t1+t2+t3+t4,2^32),32);
  77. ans=cls(anst,shift);
  78. b=dec2bin(mod(bin2dec2(ans)+bin2dec2(b),2^32),32);
  79. shi=shi+1;
  80. if shift==20
  81.   shift=5;shi=0;
  82. else shift=shift+3+shi;
  83. end
  84. H=updateH(H,a,b,c,d);
  85. end
  86. count=1;
  87. %Round3
  88. for i=33:48
  89. %disp('round3');     
  90. a=tarr(H(1,:));
  91. b=tarr(H(2,:));     
  92. c=tarr(H(3,:));     
  93. d=tarr(H(4,:));
  94.    
  95.   a=d;
  96.   d=c;
  97.   c=b;
  98.  
  99. t1= bin2dec2(f('round3',b,c,d));
  100. t2= bin2dec2(tarr(T(i)));
  101. itemp=mod((5+3*i),16)+1;
  102. t3= bin2dec2(inp(itemp,:));
  103. t4=b;
  104. anst=dec2bin(mod(t1+t2+t3+t4,2^32),32);
  105. if count==1
  106.   shift=4;
  107. elseif count==2
  108.       shift=11;
  109. elseif count==3
  110.           shift==16;
  111. elseif count==4
  112.               shift=23;
  113.           end
  114. ans=cls(anst,shift);
  115. b=dec2bin(mod(bin2dec2(ans)+bin2dec2(b),2^32),32);
  116. H=updateH(H,a,b,c,d);
  117. if count==4
  118.   count=0;
  119. end
  120. count=count+1;
  121.       end
  122. %Round4
  123. shift=6;shi=0;
  124. for i=49:64
  125. %   disp('round4');
  126. a=tarr(H(1,:));
  127. b=tarr(H(2,:));     
  128. c=tarr(H(3,:));     
  129. d=tarr(H(4,:));
  130.  
  131.   a=d;
  132.   d=c;
  133.   c=b;
  134.  
  135. t1= bin2dec2(f('round4',b,c,d));
  136. t2= bin2dec2(tarr(T(i)));
  137. itemp=mod(7*i,16)+1;
  138. t3= bin2dec2(inp(itemp,:));
  139. t4=b;
  140. anst=dec2bin(mod(t1+t2+t3+t4,2^32),32);
  141. ans=cls(anst,shift);
  142. shi=shi+1;
  143. if shift==21
  144.   shift=6;shi=0;
  145. else shift=shift+3+shi;
  146. end
  147. b=dec2bin(mod(bin2dec2(ans)+bin2dec2(b),2^32),32);
  148. H=updateH(H,a,b,c,d);
  149. end
  150. H1=calculate_new_md5(H1,a,b,c,d);
  151. end
  152. disp(H1);
  153. t2=clock;
  154. timedur=t2-t1;
  155. etime(clock,timedur)
  156. fid=fopen(hash_foutname,'w+');
  157. fprintf(fid,'%s',H1(1,:));
  158. fprintf(fid,'%s',H1(2,:));
  159. fprintf(fid,'%s',H1(3,:));
  160. fprintf(fid,'%s',H1(4,:));
  161. 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
[Link mogu videti samo ulogovani korisnici]
pa cu pokusati kasnije, mozda proradi...

kod
[Link mogu videti samo ulogovani korisnici]
(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 1124 korisnika na forumu :: 60 registrovanih, 5 sakrivenih i 1059 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: Air_Force_82, aleksmajstor, babaroga, BB, bojcistv, Boris90, BOXRR, brause, chervoncy, cifra, Cirkon, Crazzer, crnogorac, doktor097, Dovla 1980, draganca, Dvojac005, gregorxix, grunff2, hyla, ivan1973, jarovitt, joca83, Južnjak, Kalem, Koča, laki_bb, matejman, mercedesamg, milos97, milutin134, Mićko, Najax, Nikolajevic, opt1, Plavi Jadran, PMsnow, pobeda, Primus17, Qvazimodo, rodoljub, royst33, samsung, sarma, Schmidt, silikon, stegonosa, strn, tajvankanasta, tamno.nebo, theNedjeljko, Trivo, vathra, VNVK, vuk77, Yellow Pinky, zlaya011, zoran ns, zrno, Žoržo