Preciso Salvar minha senha no Banco Criptografa +
Mas SE o Usuario esqueceu a senha Preciso Descriptografar
Alguem tem algum exemplo/?de como descriptografar
MD5 NAO DESCRIPTOGRAFA
BASE 64 NAO É CRIPTOGRAFIA
ALGUEM CONHECO OUTRO?
VALEU
Preciso Salvar minha senha no Banco Criptografa +
Mas SE o Usuario esqueceu a senha Preciso Descriptografar
Alguem tem algum exemplo/?de como descriptografar
MD5 NAO DESCRIPTOGRAFA
BASE 64 NAO É CRIPTOGRAFIA
ALGUEM CONHECO OUTRO?
VALEU
Bom, vc sabe que é aconselhável que não seja possível descriptografar né?
Se vc quer usar essa opção, é melhor vc criar seu próprio algorítmo, pq confiar, segurança em coisa pronta por outra pessoa é foda.

Abraço.
Para efeitos de segurança, se o usuário esquecer a senha, resete-a e gere uma nova, e mande o usuário para uma página no seu sistema para que ele possa cadastrar uma nova.
A vantagem do MD5 é justamente que não é possível decifrar as senhas, ou seja, você não tem responsabilidade sobre elas.
Infelizmente o MD5 já tem o dias meio q contados ou já contados…
http://www.guj.com.br/posts/list/50791.java
Então o ideal é usar o RIPEMD-160 ou o SHA-192…
Mas se realmente vc quer poder descriptografar… pode usar a encriptação DES, que utiliza um conjunto de caracteres para criptografar, e para descriptografar é preciso usar o mesmo conjunto de caracteres usado para criptografar, assim é como usar uma senha para encriptar e só desencripta quem tiver esta tal senha, por isso se usar o DES proteja bem esta tal senha…
Existe esta API da GNU que suporta muitos padrões de criptografia…
http://www.gnu.org/software/gnu-crypto/
Entretanto montei estas classes baseadas em outras para um projeto.
Aqui vc tem duas classes para fazer a codificação DES e MD5…
http://netuno.googlecode.com/svn/trunk/src/org/netuno/util/security/
Para usar a MD5 é só…
String result_md5 = MD5.crypt("password_xpto");
System.out.println(result_md5);
Para usar o DES é:
String key = "keyword_xpto";
DES des = new DES(key );
String des_encode = new String(des.Encode("text to encode..."));
System.out.println(des_encode);
String des_decode = des.Decode(des_encode.getBytes());
System.out.println(des_decode);
Em todo caso o ideal é usar o pacote do GNU, mas como aquilo vem com muita coisa e é grandinho tem estas alternativas…
