Codigos Fonte, Artigos e Dicas
Criptografando Senhas com Java (“sha-1″)
Muito tempo sem posta no blog voltei =D
Hoje vou fazer um exemplo de como criptografar uma senha em java usando o padrao “sha-1″
Breve historico:
SHA-1
O Secure Hash Algorithm, uma função de espalhamento unidirecional inventada pela NSA, gera um valor hash de 160 bits, a partir de um tamanho arbitrário de mensagem. O funcionamento interno do SHA-1 é muito parecido com o observado no MD4, indicando que os estudiosos da NSA basearam-se no MD4 e fizeram melhorias em sua segurança. De fato, a fraqueza existente em parte do MD5, citada anteriormente, descoberta após o SHA-1 ter sido proposto, não ocorre no SHA-1. Atualmente, não há nenhum ataque de criptoanálise conhecido contra o SHA-1. Mesmo o ataque da força bruta torna-se impraticável, devido ao seu valor hash de 160 bits. Porém, não há provas de que, no futuro, alguém não possa descobrir como quebrar o SHA-1.
Vamos aos Codigos:
public class MecanicaCriptografaUtil {
private static MecanicaCriptografaUtil instance;
private MecanicaCriptografaUtil(){}
//Padrao Singleton, para garantir apenas uma instancia dessa classe.
public static MecanicaCriptografaUtil getInstance(){
if(instance==null){
instance = new MecanicaCriptografaUtil();
}
return instance;
}
//A Funcao
public String criptografaSenha(String senha) throws NoSuchAlgorithmException{
//Essa classe pega um valor de tamanho arbitrario e transforma em um valor de tamanho fixo
MessageDigest md = MessageDigest.getInstance( "SHA" );
//Atualiza o valor com os bytes especificados
md.update( senha.getBytes() );
//Conclui o cálculo de hash realizando operações finais, tais como preenchimento.
BigInteger hash = new BigInteger( 1, md.digest() );
//Retorna a representação String decimal deste BigInteger, com tamanho igual a 16.
String retornaSenha = hash.toString( 16 );
return retornaSenha;
}
}
<pre>
Simples Assim.
Nenhum post foi relacionado a este
| Imprimir artigo | Este artigo foi escrito por paulodiogo em 15 15UTC julho 15UTC 2010 às 17:13, e está arquivado em Java, Outros. Siga quaisquer respostas a este artigo através do RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site. |

há 9 meses atrás
Até que enfim uma classe objetiva e sem firulas que não funcionarm para criptografia de senha com Java. Ótimo trabalho…
Muito obrigado…
[Reply]
há 6 meses atrás
Como o Leandro já falou…
muito bom, e sem código inútil…
Obrigado, resolveu meu problema
[Reply]