Seguinte pessoal… tenho uma aplicaçao em aspx que faz criptografia em SHA1 na senha do usuario !!!
Gostaria de saber c eu fizer uma criptografia em SHA-1 em java é possivel comparar com o SHA-1 que foi gerado pelo aspx e incluido no BD??? Que eu saiba sim, porem a criptografia q o java esta gerando esta totalmente diferente do que esta no banco de dados !!!
Acho q me expressei mal… seguinte, a criptografia gerada pelo aspx esta armazenada no BD. Eu prefiso fazer a criptografia igual a do aspx para gerar o mesmo SHA-1 para eu comparar com o q tem no BD
Eu rodei o programa acima e nao deu o hash q tem no BD!!!
Já tive problemas com criptografia também. Seguinte, dependendo do ambiente eu sei que tem diferença, mas o maior problema é o seguinte: quando você faz o digest de uma string, você deveria gerar um código hexadecimal deste digest e gravá-lo no banco. Por quê? Simples: porque a maioria dos caracteres não ASCII são perdidos, mudados para outras coisas (como a interrogação " ? "). Ô thingol, foi você mesmo quem me deu o toque… lembrado? Será que o caso dele não é o mesmo meu?
Temos um sistema hoje rodando no MySQL e precisamos migrar ele para o Oracle. Infelizmente não tivemos como migrar as senhar por causa desse “probleminha” que não tinha sido previsto por quem desenvolveu a “criptografia” da senha. Ou seja, vamos ter de gerar novas senhas. Solução? Alteramos a forma de gravar no banco (gerando hexadecimal) e zeramos as senhas de todos os usuários. Pelo menos se tivermos que migrar novamente de banco não vamos ter problemas.
sei que eu devo armazena-la criptografada no banco e compará-la com a String criptografada que o usuário digitar…
mas minha dúvida agora é: tem como eu passar uma chave para alguem conseguir ler este dado criptogrado…
e se tem como, alguem sabe a maneira de fazer isso…
SHA-1, MD5 e outros algoritmos de hash não fazem criptografia.
O que eles fazem é achar um número que está relacionado com a sua entrada.
Esse número pode ser o mesmo para entradas diferentes, mas a probabilidade é infinitesimal.
Portanto, se você fizer duas entradas e o hash bater, então supõe-se que as entradas são as mesmas.
Você pode, por exaustão, tentar achar uma senha que bata com a senha que está cadastrada no banco (por exemplo, digamos que no banco tivéssemos cadastrado o SHA-1 “47Tb0ToGc5w8Z5YZHi4Q4YqPa1Y=” e eu soubesse que o nome do seu filho é “João”, da sua esposa “Maria” e do seu cachorro “Totó”. Eu tentaria achar algumas palavras cujo SHA-1 batesse - tentaria, por exemplo, “João”, “joão”, “joao”, “Maria”, “MARIA”, “maria” etc.). Mas não dá para achar uma chave que abra TODAS as senhas.