Estou tentando há algum tempo fazer a descriptografia de uma senha em md5, porém, não sei qual API em java que me auxiliaria nessa tarefa!
Fiz alguns testes de criptografia usando java.security.MessageDigest, porém, não consigo fazer o processo inverso. Li a documentação mas não vi nenhum método que faça isso.
pela sua lógica, o Hash aa5717e6412e75ecd6c6dca6632b8f2b
tirando os numeros ficaria: aaeeecdcdcabfb
então a senha seria: aecccbb ???
a senha criptografada para gera esse Has foi h4e8riew, se vc reparar o Hash não possui as letras h,r,i,w q estão na senha…e se a senha tiver numeros???
ajuda a gente a entender o seu raciocinio…eu ateh o pouco q eu conheço, a forma de se quebrar MD5 eh atraves de Rainbow Tables
bom…acho q a discussão sobre isso vai longe, hehehehe
A classe que o pessoal do GUJ me passou para criptografia MD5(Marcelo Dimas version 5.0) foi a seguinte…
[code]/**@author Marcelo Dimas/
@version 5
*/
public class MD5 {
public String encrypt(String enc){
String RESULTADO = "";
for(int i = 0; i < enc.length(); i++){
RESULTADO += getNUMBER();
RESULTADO += getKEY();
RESULTADO += enc.substring(i, i+1);
}
return RESULTADO;
}
public String getKEY(){
return new Character((char)(Math.random()*23+97)).toString();
}
public String getNUMBER(){
return String.valueOf(Math.round(Math.random() * 1000 % 999));
}
public static void main(String[] args) {
System.out.println(new MD5().encrypt("java"));
}
}[/code]
Essa classe está licensiada pelo LGPL, se quiser pode utiliza-la.
Creio que você deve ter se enganado sobre Rainbow Tables, nem tem isso nessa classe … mais belesa a gente ta aqui pra se ajudar… hj foi minha vez de te ajudar… amanha alguem pode precizar de voçe.
Se quiser lhe mando no email… a classe que estou fazendo pra criptografia SHA …
Concordo com o colega pedrobusko, Rainbow Tables é realmente o melhor caminho, eu possuo uma tabela de Rainbow de 37 gb, são todas as combinações possíveis de 3 a 10 dígitos usando os caracteres do 32 ao 196 da tabela ascII.
O que levaria anos p ser desvendado, acaba levando 10 min, isso pq está em um banco usando mysql e a máquina é um k6II-500 usando slackware…
É praticamente impossível descubrir uma chave md5, o cara precisa têr uma mente muito louca se conseguir.
Tentar entender o processo chave de como é encriptado é válido, o que é insano, é fazer um algorítimo do tipo BF(brute force) que vá varrendo todas as combinações.
Algo que eu sempre digo quando me perguntam isso:
Quem descobrir como desafazer o md5, vai ter inventado o melhor compactador/descompactador do mundo
Imagina, qualquer quantidade absurda de dados compactada em míseros 128 bytes
Dá pra decorar e levar os dados na mente se quiser hehe.
Bom, falando serio, é só raciocinar um pouco que a gente vê que é impossível desfazer um md5 e obter a chave original com 100% de precisão, porque a quantidade de hashes possíveis, apesar de imensa, é limitada.
Mesmo usando força bruta, rainbow tables, vc só vai obter algo que vc sabe que produz o mesmo hash, mas nunca vai poder afirmar que aquele foi o valor original usado pra produzir o hash(Pode ser que isso seja importante pra vc, pode ser que não…)
Bom dia companheiros, parece que não é tão impossível assim retornar o Hash do MD5 não, como este site: http://md5.rednoize.com/ que faz isso com um grande rapidez, e todos que testei agora, de senha de até 6 digitos, ele fez pereitamente, agora resta sabermos como isso foi feito, abraços a todos.
Estou tentando há algum tempo fazer a descriptografia de uma senha em md5, porém, não sei qual API em java que me auxiliaria nessa tarefa!
Fiz alguns testes de criptografia usando java.security.MessageDigest, porém, não consigo fazer o processo inverso. Li a documentação mas não vi nenhum método que faça isso.
alguém pode me ajudar?
obrigado. 8O[/quote]
Pergunte para alguém da CIA, MI6… algum serviço de inteligência deve saber… kk
Você confundiu criptografia MD5 (Message-Digest algorithm 5) com MD5(Marcelo Dimas version 5.0) ???
kkkkkkkkkkkkk
e antes de tentar aprender java, volta pro ensino fundamental porque você escreve tudo errado!!! kkkkkkk
belesa e precizar
kkkkkkkk
[quote=javersonPJ]Olá pedrobusto,
A classe que o pessoal do GUJ me passou para criptografia MD5(Marcelo Dimas version 5.0) foi a seguinte…
[code]/**@author Marcelo Dimas/
@version 5
*/
public class MD5 {
public String encrypt(String enc){
String RESULTADO = "";
for(int i = 0; i < enc.length(); i++){
RESULTADO += getNUMBER();
RESULTADO += getKEY();
RESULTADO += enc.substring(i, i+1);
}
return RESULTADO;
}
public String getKEY(){
return new Character((char)(Math.random()*23+97)).toString();
}
public String getNUMBER(){
return String.valueOf(Math.round(Math.random() * 1000 % 999));
}
public static void main(String[] args) {
System.out.println(new MD5().encrypt("java"));
}
}[/code]
Essa classe está licensiada pelo LGPL, se quiser pode utiliza-la.
Creio que você deve ter se enganado sobre Rainbow Tables, nem tem isso nessa classe … mais belesa a gente ta aqui pra se ajudar… hj foi minha vez de te ajudar… amanha alguem pode precizar de voçe.
Se quiser lhe mando no email… a classe que estou fazendo pra criptografia SHA …
Para o hash MD5 - aa5717e6412e75ecd6c6dca6632b8f2b
a string e: h4e8riew
[quote=pedrobuskoPJ]caro javerson…
pela sua lógica, o Hash aa5717e6412e75ecd6c6dca6632b8f2b
tirando os numeros ficaria: aaeeecdcdcabfb
então a senha seria: aecccbb ???
a senha criptografada para gera esse Has foi h4e8riew, se vc reparar o Hash não possui as letras h,r,i,w q estão na senha…e se a senha tiver numeros???
ajuda a gente a entender o seu raciocinio…eu ateh o pouco q eu conheço, a forma de se quebrar MD5 eh atraves de Rainbow Tables
bom…acho q a discussão sobre isso vai longe, hehehehe
MD5
Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321, e muito utilizado por softwares com protocolo ponto-a-ponto (P2P, ou Peer-to-Peer, em inglês) na verificação de integridade de arquivos e logins.
Foi desenvolvido em 1991 por Ronald Rivest para suceder ao MD4 que tinha alguns problemas de segurança. Por ser um algoritmo unidirecional, uma hash md5 não pode ser transformada novamente no texto que lhe deu origem. O método de verificação é, então, feito pela comparação das duas hash (uma da mensagem original confiável e outra da mensagem recebida). O MD5 também é usado para verificar a integridade de um arquivo através, por exemplo, do programa md5sum, que cria a hash de um arquivo. Isto pode-se tornar muito útil para downloads de arquivos grandes, para programas P2P que constroem o arquivo através de pedaços e estão sujeitos a corrupção dos mesmos. Como autenticação de login é utilizada em vários sistemas operacionais unix e em muitos sites com autentificação.
Em 2008, Ronald Rivest e outros, publicaram uma nova versão do algoritmo o MD6 com hash de tamanhos 224, 256, 384 ou 512 bytes. O algoritmo MD6 iria participar do concurso para ser o novo algoritmo SHA-3[1] [2], porém após removeu-o do concurso por considera-lo muito lento, anuncionado que os computadores de hoje são muito lentos para usar o MD6.
bem tem uma maneira… faça um algoritimo que tente todas as combinações de caracteres possiveis… em cerca de 5 min se tiver muita sorte ou 5 trilhões de anos se tiver azar ele descobre pra vc… XD
Hoje em dia o MD5 não é tão confiável… bom, É CONFIÁVEL, mas não tanto assim!
Dado que já existem dezenas de bancos com hashes md5, inclusive disponíveis na internet.
A título de exemplo: