Pergunta

Estou procurando um algoritmo de criptografia unidirecional simples e não patenteado, de preferência em c.Eu gostaria de usá-lo para validar senhas.

Foi útil?

Solução

SHA-1 e o resto de sua família foram patenteados pelo governo dos EUA, que "liberou a patente sob uma licença livre de royalties".Muitas implementações de domínio público pode ser encontrado através do Google. :-)

Outras dicas

O nome correto para 'algoritmo de criptografia unidirecional' é 'algoritmo de hash' (você quis dizer uma maneira de 'embaralhar' uma senha para que ela nunca possa ser recuperada, certo?)

Não use md5 em aplicações modernas, ataques bem-sucedidos a ele têm aparecido desde 2004 (veja http://www.doxpara.com/md5_someday.pdf para referências).Use a família SHA.

Na verdade, usar um hash não é suficiente.você deve usar um sal para limitá-los e uma técnica mais avançada como bcrypt limita as possibilidades de adivinhar a senha

basta usar a função crypt(3)

Aqui está o fundo

SHA-1 parece ser uma boa sugestão ou, se você acredita que o SHA-1 está perto de ser quebrado, um da família SHA-2.

Você pode achar que o MD5 não é “seguro” o suficiente.

MD5 me serviu bem até agora.

MD5 e SHA512 (ou outra variante SHA-2) possuem vulnerabilidades teóricas identificadas neles.Não acho que o SHA ainda tenha sido demonstrado como quebrado, mas a possibilidade existe.Whirlpool é um algoritmo hash isento de royalties que (ainda) não mostrou nenhuma fraqueza.Esta página tem um link para a implementação de referência C.

Por que MD5 ou SHA1 não funcionam para você?

/Allan

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top