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.
A codificação do MD5 é unidirecional. Logo, se vc criptografar os dados NÃO conseguirá descriptografá-los.
T
TeeheePJ
não entendo nada disso não, mas qual a finalidade de vc criptografar e não conseguir mais decriptografar a sua informação?
P
pedrobuskoPJ
a informação se mantem segura para quem não conheçe do q se trata aquilo…
vc consegue sim, criptografar uma informação e comparar com a q ja esta criptografada, isso a grosso modo…
J
javersonPJ
Bom … é o seguinte, não foi fácil, mais eu estava com esse mesmo problema esses dias… então segue ai a solução…
aj221ca64543574ev3254ga1239424387
supomos que temos esse MD5 que por acaso é minha senha…
vamos descriptografa-la:
Não vou dar o código assim fácil né ! hehehe… mais segue a lógica…
Separe as letras dos números, e o que sobra é:
ajcaevga
Agora ficou fácil, pegue apenas as letras de índice par… e a senha é …
ajcaevga
java
Espero ter ajudado… estou tentando quebrar agora a SHA-512
Qualquer coisa eu posto novamente abraços !
P
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
vlw
J
javersonPJ
Olá pedrobusto,
A classe que o pessoal do GUJ me passou para criptografia MD5(Marcelo Dimas version 5.0) foi a seguinte...
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 :grin: .. 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 ....
Abraços..
L
lsouzabrPJ
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.
M
mmpauloPJ
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…)
M
murillosi
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.
diego_qmota
lusilva1982PJ:
Salve!
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
Pergunte para alguém da CIA, MI6… algum serviço de inteligência deve saber… kk
A
allanft
Meu filho...
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
javersonPJ:
Olá pedrobusto,
A classe que o pessoal do GUJ me passou para criptografia MD5(Marcelo Dimas version 5.0) foi a seguinte...
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 :grin: .. 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 ....
Abraços..
A
allanft
Para o hash MD5 - aa5717e6412e75ecd6c6dca6632b8f2b
a string e: h4e8riew
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
vlw
A
allanft
Um pouco sobre MD5
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.
Fonte:
luistiagos
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
M
mrbbm
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:
Bom … é o seguinte, não foi fácil, mais eu estava com esse mesmo problema esses dias… então segue ai a solução…
aj221ca64543574ev3254ga1239424387
supomos que temos esse MD5 que por acaso é minha senha…
vamos descriptografa-la:
Não vou dar o código assim fácil né ! hehehe… mais segue a lógica…
Separe as letras dos números, e o que sobra é:
ajcaevga
Agora ficou fácil, pegue apenas as letras de índice par… e a senha é …
ajcaevga
java
Espero ter ajudado… estou tentando quebrar agora a SHA-512
Qualquer coisa eu posto novamente abraços !
Boa Tarde, javersonPJ!
Mas, se não me engano, o MD5 para a string “java” é 93f725a07423fe1c889f448b33d21f46
Fiz de cabeça… me corrijam se eu estiver errado… rsrs
Abraço!
Vingdel
Boa Tarde, TeeheePJ!
Uma das finalidades é de assegurar a integrifade de um arquivo, por exemplo, para ver se houve falha na transferencia do arquivo.
Espero ter esclarecido, abraço!
M
mrbbm
Boa Tarde, TeeheePJ!
Uma das finalidades é de assegurar a integrifade de um arquivo, por exemplo, para ver se houve falha na transferencia do arquivo.
Espero ter esclarecido, abraço!
Ué, e as senhas?
Imagina alguém acessar seu banco, terá todas as credenciais em suas mãos!
Fora que um simples vazamento também poderia te fazer perder credibilidade e clientes (DINHEIRO!). Pois muitas pessoas utilizam uma mesma senha para vários locais e não seria nada agradável saber que sua senha vazou.
Sisbratec
EAE galera ou novo aqui no forum. gostaria de uma Dica, criei meu banco de dados Rainbow Tables
devo ter uma Tabela só au dividir por etapas para nao ficar muito grante.
Da uma força ai.
fiz um script em PHP para criptografar os Numeros em sequencia funciona, mais se alguem tiver e puder me passar um outro eu agradeço
Vlw pessoal
até aproxima.
L
lcbrito
O que os caras conseguem e fazer BF(Brute Force) força bruta e não descobrir a senha.
MD5, SHA1, Adler 32, etc são métodos de hash e NÃO criptografia, porque no conceito de criptografia você tem que ter a possibilidade da volta, no caso descriptografia, neste caso o hash é unidirecional como disse o lsouzabrPJ, são cálculos matemáticos que a mesma entrada gerará sempre a mesma saída (hash).
Existem vários sistemas, que vão ficar tentando pegar um hash e ficar tentando descobrir qual foi a senha que gerou um hash igual ao que se quer descobrir. Por isso que sistemas mais robustos eles fazem a validação na criação de senhas com regras do tipo, a senha deve possuir letras e números, pelo menos uma letra maiúscula, etc. Isso é feito com expressões regulares a lógica de criação da senha.
Então é tentiva e erro.
D
daniesouza
lcbrito:
O que os caras conseguem e fazer BF(Brute Force) força bruta e não descobrir a senha.
MD5, SHA1, Adler 32, etc são métodos de hash e NÃO criptografia, porque no conceito de criptografia você tem que ter a possibilidade da volta, no caso descriptografia, neste caso o hash é unidirecional como disse o lsouzabrPJ, são cálculos matemáticos que a mesma entrada gerará sempre a mesma saída (hash).
Existem vários sistemas, que vão ficar tentando pegar um hash e ficar tentando descobrir qual foi a senha que gerou um hash igual ao que se quer descobrir. Por isso que sistemas mais robustos eles fazem a validação na criação de senhas com regras do tipo, a senha deve possuir letras e números, pelo menos uma letra maiúscula, etc. Isso é feito com expressões regulares a lógica de criação da senha.
Então é tentiva e erro.
E mesmo que esses sistemas (brute force) consigam chegar ao hash… não é garantido que a senha que ele utilizou para chegar ao hash é a mesma senha do hash que ele esta tentando descobrir.
Pelo que vi por ai, algumas entradas de Strings diferentes podem gerar o mesmo hash…