Criptografia em java

Olá pessoal!
Qual algoritmo de criptografia é melhor para criptografar senhas e nome de usuários:
MD5, MD2, SHA, SHA-1, SHA-256, SHA-384 ou SHA-512?

[quote=mcirqueira]Olá pessoal!
Qual algoritmo de criptografia é melhor para criptografar senhas e nome de usuários:
MD5, MD2, SHA, SHA-1, SHA-256, SHA-384 ou SHA-512?[/quote]

O mais comum é o MD5. Mas o ideal é tu analisar que tipo de sistema tu está protegendo, pois somente um algoritmo de criptografia de senhas pode ser insuficiente.
Mas veja, normalmente, o melhor algoritmo é aquele que consegue utilizar mais bits para criptografar, mas faça uma pesquisa. Há muitas discussões sobre isso, pontos fortes e fracos entre outros.

Na empresa onde trabalho, temos o nosso próprio algoritmo de criptografia. Creio que sairia mais em conta se você fizesse o seu, também.

Cara, vou usar o AES, o mais seguro que existe hoje, pois o MD5 e SHA1 já foram quebrados.
Obrigado a todos!

[quote=mcirqueira]Cara, vou usar o AES, o mais seguro que existe hoje, pois o MD5 e SHA1 já foram quebrados.
Obrigado a todos![/quote]

É uma boa escolha. Sobre algoritmo já ter sido quebrado, acho difícil você mencionar algum que ainda não tenha sido rsrs…Senão foi, em breve será.

Falei merda.

O MD5 e SHA-1 não foram quebrados, até mesmo porque não são métodos de criptografia, sãp Message Digest.
Mas existem sites com banco de dados com várias String e seu respectivos Message Digest, o que torna provável conter lá alguma String que usaremos, portanto não está tão seguro assim.

Pois é, não confudemos:

Criptografia simetrica (AES, DES, 3DES…)
Criptografia assimetrica (RSA, ECC…)

Algoritmos de hash (MD5, MD6, SHA-X…)

De uma estuada sobre.

Sobre o banco de MD5, sim há essa possibilidade, mas antes disso o “cara” tem que invadir teu BD, certo?

Já existe o MD6? Você tem um exemplo de como usa-lo?

Estou salvando num .dat mesmo, mas obrigrado.

[quote=mcirqueira]
Já existe o MD6? Você tem um exemplo de como usa-lo?[/quote]

Existe sim, há um tempo, mas não sei se já foi “aprovado” acredito que ainda não.
Quanto a exemplo procure por MD6SUM, eu particularmente nunca o testei mas dizem ser extremamente lento comparado ao SHA.

Entendo, dependendo da sua aplicação você poderia usar SQLite ou Apache Derby entre outros que existem. De uma pesquisada sobre talvez vale a pena.

Java Simplified Encryption
http://www.jasypt.org/

Quer uma cifra de fluxo que nunca foi quebrada? Salsa20/20

[quote=gbvbahia01]Java Simplified Encryption
http://www.jasypt.org/[/quote]

Facil de implantar…

public void Criptografia() {
        String seuTexto = "BLA BLA BLA";
        System.out.println("Texto sem criptografia: " + seuTexto);
 
        //instanciamos a classe BasicTextEncryptor
        BasicTextEncryptor bte = new BasicTextEncryptor();
 
        //inserimos uma senha qualquer
        bte.setPassword("rBLA BLA BLA");
 
        //criamos uma String que recebe a senha criptografada
        String seuTextoCriptografado = bte.encrypt(seuTexto);
        System.out.println("Seu texto criptografado = " + seuTextoCriptografado);
 
        //criamos uma String que recebe a senha descriptografada
        String seuTextoNovamenteDescriptografado = bte.decrypt(seuTextoCriptografado);
        System.out.println("Texto descriptografado  = " + seuTextoNovamenteDescriptografado);
 
}

Fonte.:http://javaaberto.blogspot.com.br/2012/11/criptografia.html

O Dan Boneh está dando um curso de criptografia no Coursera. E ele afirma categoricamente que não se deve usar algoritmos próprios para criptografia. É muito mais seguro usar algo de mercado.

Exatamente, os algoritmos que estão no mercado não são utilizados por acaso, todos são testados e avaliados, e por isso são os aprovados para utilização.

Falando do Dan Boneh, advinha onde eu ouvi falar sobre o Salsa 20? 8)

http://www.mindrot.org/projects/jBCrypt/
http://static.springsource.org/spring-security/site/



http://security.blogoverflow.com/2011/07/a-tour-of-password-questions-and-answers/
http://security.blogoverflow.com/category/password/
http://security.blogoverflow.com/archive/

Leia todos, por favor. É a melhor dica que eu posso dar para quem quiser fazer um favor à humanidade implementando segurança de sistemas corretamente.

Exatamente, os algoritmos que estão no mercado não são utilizados por acaso, todos são testados e avaliados, e por isso são os aprovados para utilização.

Falando do Dan Boneh, advinha onde eu ouvi falar sobre o Salsa 20? 8) [/quote]

:smiley:

Eu queria ter mais tempo pra terminar de fazer o curso dele. O trem tá feio aqui…só ontem foram 13 horas seguidas trabalhando :shock: