Criptografar senha

Galera, alguém conhece algum metodo para criptografar a senha, pra depois eu salva-la no banco de dados?

Aqui mesmo tem um tutorial
http://www.guj.com.br/article.show.logic?id=32

http://www.exampledepot.com/egs/javax.crypto/desstring.html

Fala Chuvinha!

Você pode usar o MD5 pra começar! basicamente você teria o seguitne:

import java.security.*;
import java.math.*;

public class CriptografiaComMD5 {
    public static void main(String args[]) throws Exception{
       String s="SuaSenha";
       MessageDigest m=MessageDigest.getInstance("MD5");
       m.update(s.getBytes(),0,s.length());
       System.out.println("MD5: "+new BigInteger(1,m.digest()).toString(16));
    }
}

A partir deste momento você pode brincar com o seu banco de dados!
Seria isso?

Até mais!

O nosso amigo ViniGodoy postou a criptografia com DES que também é interessante
(bem mais que MD5).
Acho que a pergunta não se refere do por que escolher um ou outro por isso vou deixar
pra você dar uma olhada no próprio GUJ pra ver! :wink:

Só adiantando, o MD5 é bacana pra começar e é fácil sua manipulação, porém a galera
está abandonando! Use para estudo mesmo ou quando encontrar essa forma em algum
sistema legado ! :slight_smile:

Abraços!

O MD5 é um algoritmo de hash, ou seja, ele não é reversível. Talvez seja mais interessante utiliza-lo justamente por ser impossível de se chegar na senha original, e por algoritmos de hashing serem muito velozes.

Use a classe MessageDigest para codificar a senha. O algoritmo SHA1 é melhor que o MD5. Depois de aplicar o hash da senha vc ainda terá de aplicar o Base64 na senha para evitar qualquer perda nos bytes, aqui estou usando o Base64 da Sun, sendo que é aconselhável usar o Base64 do commons-codec caso use outro JDK.

import sun.misc.BASE64Encoder; ... String senha = "minhaSenha"; MessageDigest digest = MessageDigest.getInstance("SHA-1"); digest.update(senha.getBytes()); byte[] bytes = digest.digest(); BASE64Encoder encoder = new BASE64Encoder(); String senhaCodificada = encoder.encode(bytes); System.out.println("Senha : " + senha); System.out.println("Senha SHA1: " + senhaCodificada);

Valeu pelas dicas.
Ajudaram bastante.
Bacana os tutorias.
Obrigado galera =))

Abraço

Oxe! Aqui não dá nem tempo de responder. A eficiência é tão grande, que quando se pensa em responder vem uma chuva de respostas. Vlw galera!

Isso mesmo como o pessoal comentou.
lembrando que já tivemos uma discussão interessante no GUJ sobre o MD5
http://www.guj.com.br/posts/list/186661.java

Vale a pena dar uma olhada Chuvinha!

Até mais!

Haha Cesimar !
Pois é, a comunidade é bem unida pelo jeito!
Mas posta aí seus comentários, tem sempre alguém pra acrescentar e mostrar
algo de uma forma diferente, mesmo sendo a mesma coisa, como mostrou
o ViniGodoy e o lsjunior!

Abraços!

Olá pessoal!!

Estou precisando exatamente disso, mas como foi falado aqui:

Quero algo reversível, portanto tbm citando o q o Vini falou, irei utilizar:

[b]Agora… só uma dúvida… Caso eu tenha os meus pacotes Model, View, Control e Dao o correto seria ter essa classe onde??? No control??

Muito obrigada!