Como criptografar uma TextField de password usando ********.
Como criptografar uma TextField de password
20 Respostas
Não use uma JTextField e sim uma JPasswordField 
Então dessa forma ele ja fica criptografado com ****.
Não, ele não criptografa nada.
Ele simplesmente mostra estrelinhas para quem está entrando com a senha.
Para criptografar, use algum algoritmo de criptografia disponível no Java.
Pó cara valewwww.
Cara, eu uso o SHA1 que é um tipo de criptografia só de ida, criptografado em 128bits, dessa forma vc nunca vi saber qual é a senha do usuário...
Como comparar para validar???
Pega o que o cara digitar e criptografa, aí você compara com o que está armazenado no banco... Funcional e seguro!!!
Segue o código:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Sha1 {
public String encriptar(String senha) throws NoSuchAlgorithmException
{
if (senha.length()==0)
{
return null;
}
else
{
MessageDigest md = MessageDigest.getInstance("SHA1");
md.update(senha.getBytes());
byte[] hash = md.digest();
StringBuffer senhaEncrip = new StringBuffer();
for (int i=0;i<hash.length;i++)
{
senhaEncrip.append(Integer.toHexString(hash[i]&0xff));
}
return senhaEncrip.toString();
}
}
}
e para descriptografar com o SHA1?
Não descriptografa ^^
Olha, num vou dizer que não descriptografa porque eu acredito que em informática tudo é possível…
Mas descriptografar 128bits eu só ouvi falar que quem conseguiu foi a NASA com 7 supercomputadores e o algoritmo rodando um tempão(anos), logo, esse código aí em cima é bem seguro!!!
Realmente, eu quis falar que uma pessoa normal não descriptografa :)…
O algoritmo SHA-1 gera um hash de 160 bits e não de 128 bits.
http://en.wikipedia.org/wiki/Sha1
Utilize o algoritmo Base64 para representar o hash como String.
Então vc quer dizer que o Base64 descriptografa o SHA1???
Massa, até onde eu sabia o SHA1 criptografava com 128bits mas, aí, se o Base64 descriptografa o SHA1 alguém conhece algum algoritmo que não rola de descriptografar??
NÃO!!! Onde no meu post eu escrevi que Base64 descriptografa SHA-1???
O que eu escrevi foi que no trecho de código enviado, ao invés de transformar o hash (você sabe o que é Hash?) em uma sequencia de bytes (byte[]) e converter para uma String, o melhor é representar esta sequencia de bytes no formato Base64.
PS: Entendendo melhor o código, verifiquei que o que está sendo gerado é uma representação em hexadecimal de cada byte.
O algoritmo de “Message Digest” que gera um hash de 128 bits é o MD5.
De novo, eu nunca afirmei que isto. Base64 nem é um algoritmo de criptografia: http://pt.wikipedia.org/wiki/Base64
Todos os algoritmos de “Message Digest” ou “Hash” (MD4, MD5, SHA-1, SHA-256, SHA-512, RIPEMD-160) são algoritmos de “one-way”, ou seja, geram uma saída “sem volta”.
Hmm legal ateh entenda que seja um caminho sem volta, mas alguém poderia me dar uma sugestão de como eu poderia devolver a senha do usuário em um “esqueci senha” da vida tendo esta criptografada???
seria melhor eu gerar uma senha randomica enviá-la por e-mail, criptografar e gravá-la no banco??
não gosto dessa abordagem porque outra pessoa poderia inserir os dados do usuário e assim resetar a senha deste.
ps.: não queria usar um formulário para verificar a autenticidade do usuário.
caso não veja outra saída … ok :roll:
vlw ae pessoal :twisted:
Eu fiz um programinha que dando o determinado sha1 ou md5 da senha ele cria milhares de Strings e compara seu hash com essas até encontrar um valor que coincida, mas é um processo demorado mas não impossível.
Hmm legal ateh entenda que seja um caminho sem volta, mas alguém poderia me dar uma sugestão de como eu poderia devolver a senha do usuário em um “esqueci senha” da vida tendo esta criptografada???seria melhor eu gerar uma senha randomica enviá-la por e-mail, criptografar e gravá-la no banco??
não gosto dessa abordagem porque outra pessoa poderia inserir os dados do usuário e assim resetar a senha deste.
ps.: não queria usar um formulário para verificar a autenticidade do usuário.
caso não veja outra saída … ok :roll:
vlw ae pessoal :twisted:
Se na hora do cadastro voce pedir um e-mail e enviar esta senha pra esse email acho que é a opção mais viavel nesse caso, e mesmo sendo criptografada ou não voce não vai enviar a senha original dele para o email.
Imagina a seguinte situação.
O usuário se cadastra
login
senha
email
depois de 1 mes ele esqueceu a senha …
a senha está criptografada no banco. existe alguma maneira de reenviar a senha a este usuário?
Imagina a seguinte situação.O usuário se cadastra
login
senhadepois de 1 mes ele esqueceu a senha …
a senha está criptografada no banco. existe alguma maneira de reenviar a senha a este usuário?
Mude a senha para uma aleatória temporária e envia pra ele.
pensei nisso mas ae cai no problema que mencionei antes…
outra pessoa senão o usuário em posse do e-mail pode “resetar” a senha do cara. ok ele nunca iria conseguir logar mas poderia ficar resetando a senha do cara toda hora
você pode mandar um email antes requisitando que ele clique num link para gerar uma nova senha.
show mano
soluciona o problema, melhor que cadastrar pavra-chave, lembrete …
vlw ae, abraço