Sobre a Criptografia MD6
MD6 (Message-Digest algorithm 6) é uma função hash criptográfico. Ele usa uma árvore de Merkle-como a estrutura para permitir a computação paralela imensa de hashes para entradas muito tempo. Autores afirmam um desempenho de 28 ciclos por byte para MD6-256 em um processador Intel Core 2 Duo e provável resistência contra a criptoanálise diferencial.
MD6 (Message-Digest algorithm 6) é uma função hash criptográfico. Ele usa uma árvore de Merkle-como a estrutura para permitir a computação paralela imensa de hashes para entradas muito tempo. Autores afirmam um desempenho de 28 ciclos por byte para MD6-256 em um processador Intel Core 2 Duo e provável resistência contra a criptoanálise diferencial.
#! / usr / bin / perl
use Digest:: MD5 qw (md5_hex);
use Encode qw (encode_utf8);
use Benchmark;
$ fim = $ ARGV [1];
$ start = $ ARGV [0];
chrs $ = ord ($ ARGV [2]);
$ chrf = ord ($ ARGV [3]) +1;
$ mhash = $ ARGV [4];
if (length ($ mhash)! = 32) (
imprimir "********************************************* *** ******************* \ n ";
print "* ZZZZZ 333 RRRR 000 EEEE CCC 000 RRRR * \ n";
print "* Z R 3 R 0 00 C 0 00 R RE * \ n";
print "* Z RRRR 33 0 0 0 C 0 0 0 RRRR EEE * \ n";
print "3 RR * Z 00 0 C 00 0 RRE * \ n";
print "* ZZZZZ 333 RR R 000 CCC 000 RR R * EEEE \ n";
print "* * \ n";
print "* * \ n";
print "* md5 forcer perl bruta * \ n";
print "* criado por Z3r0c0re e R4vax * \ n";
print "uso *: crack.pl * \ n";
print "* ex az 1 4 crack.pl 098f6bcd4621d373cade4e832627b4f6 * \ n";
print "* ex crack.pl 1 4 0 z 098f6bcd4621d373cade4e832627b4f6 * \ n";
print "* * \ n";
imprimir "********************************************* *** ******************* \ n \ n ";
saída;
) else (
for ($ pl start = $; $ pl <= $ fim; $ pl + +) (
push (@ pass, $ chrs);
)
imprimir "******** crack partida ********* \ n ";
$ total = 0;
for ($ l1 = $ start, $ l1 <= $ fim; $ l1 + +) (
$ t0 = Benchmark-> new;
$ t2 = time ();
$ t4 = Benchmark-> new;
do (
$ total + = (chrf-$ chrs);
for ($ l2 = $ chrs; $ l2 <= chrf $, $ l2 + +) (
$ pass [$ L1] = $ l2;
$ hash = chr ($ pass [$ L1]). $ hash1;
$ md5 = sendpass ($ hash);
if ($ md5 $ mhash eq) (
print "\ n". $ md5. "=". $ hash. "\ n";
$ t1 = Benchmark-> new;
td timediff $ = ($ t1, $ t0);
print "hash foi rachado em:", timestr ($ td), "\ n";
saída;
)
hash1 $ = "";
for ($ l4 = $ l1; $ l4> = 1; $ L4 -) (
if ($ pass [$ L4]> = $ chrf) (
$ pass [$ l4] = $ chrs;
$ pass [$ L4-1] + = 1;
)
if ($ l4 eq $ l1) (
) else (
$ hash1 .= chr ($ pass [l4 $]);
)
)
)
) até (eq $ total chrf ($-$ chrs) ** $ l1);
$ t1 = Benchmark-> new;
$ t3 = time ();
$ TD1 = timediff ($ t1, $ t0);
if ($ t3, $ t2> 0) (
$ time1 = (chrf ($-$ chrs) ** $ l1) / ($ t3, $ t2). "Por segundo";
) else (
$ time1 = (chrf ($-$ chrs) ** $ l1). "Em menos de um segundo";
)
print "Genarated". $ time1. "\ n";
print "Genarated". (chrf ($-$ chrs) ** $ l1). "Hashes" de ", timestr ($ TD1)," \ n ";
)
)
sendpass sub (
$ md5 = md5_hex (encode_utf8 ($ hash));
return $ md5;
)
use Digest:: MD5 qw (md5_hex);
use Encode qw (encode_utf8);
use Benchmark;
$ fim = $ ARGV [1];
$ start = $ ARGV [0];
chrs $ = ord ($ ARGV [2]);
$ chrf = ord ($ ARGV [3]) +1;
$ mhash = $ ARGV [4];
if (length ($ mhash)! = 32) (
imprimir "********************************************* *** ******************* \ n ";
print "* ZZZZZ 333 RRRR 000 EEEE CCC 000 RRRR * \ n";
print "* Z R 3 R 0 00 C 0 00 R RE * \ n";
print "* Z RRRR 33 0 0 0 C 0 0 0 RRRR EEE * \ n";
print "3 RR * Z 00 0 C 00 0 RRE * \ n";
print "* ZZZZZ 333 RR R 000 CCC 000 RR R * EEEE \ n";
print "* * \ n";
print "* * \ n";
print "* md5 forcer perl bruta * \ n";
print "* criado por Z3r0c0re e R4vax * \ n";
print "uso *: crack.pl * \ n";
print "* ex az 1 4 crack.pl 098f6bcd4621d373cade4e832627b4f6 * \ n";
print "* ex crack.pl 1 4 0 z 098f6bcd4621d373cade4e832627b4f6 * \ n";
print "* * \ n";
imprimir "********************************************* *** ******************* \ n \ n ";
saída;
) else (
for ($ pl start = $; $ pl <= $ fim; $ pl + +) (
push (@ pass, $ chrs);
)
imprimir "******** crack partida ********* \ n ";
$ total = 0;
for ($ l1 = $ start, $ l1 <= $ fim; $ l1 + +) (
$ t0 = Benchmark-> new;
$ t2 = time ();
$ t4 = Benchmark-> new;
do (
$ total + = (chrf-$ chrs);
for ($ l2 = $ chrs; $ l2 <= chrf $, $ l2 + +) (
$ pass [$ L1] = $ l2;
$ hash = chr ($ pass [$ L1]). $ hash1;
$ md5 = sendpass ($ hash);
if ($ md5 $ mhash eq) (
print "\ n". $ md5. "=". $ hash. "\ n";
$ t1 = Benchmark-> new;
td timediff $ = ($ t1, $ t0);
print "hash foi rachado em:", timestr ($ td), "\ n";
saída;
)
hash1 $ = "";
for ($ l4 = $ l1; $ l4> = 1; $ L4 -) (
if ($ pass [$ L4]> = $ chrf) (
$ pass [$ l4] = $ chrs;
$ pass [$ L4-1] + = 1;
)
if ($ l4 eq $ l1) (
) else (
$ hash1 .= chr ($ pass [l4 $]);
)
)
)
) até (eq $ total chrf ($-$ chrs) ** $ l1);
$ t1 = Benchmark-> new;
$ t3 = time ();
$ TD1 = timediff ($ t1, $ t0);
if ($ t3, $ t2> 0) (
$ time1 = (chrf ($-$ chrs) ** $ l1) / ($ t3, $ t2). "Por segundo";
) else (
$ time1 = (chrf ($-$ chrs) ** $ l1). "Em menos de um segundo";
)
print "Genarated". $ time1. "\ n";
print "Genarated". (chrf ($-$ chrs) ** $ l1). "Hashes" de ", timestr ($ TD1)," \ n ";
)
)
sendpass sub (
$ md5 = md5_hex (encode_utf8 ($ hash));
return $ md5;
)
Comment