PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Qual é a maneira recomendada de criptografar senhas de usuários em um banco de dados?


Não use SHA1 ou SHA256 , como a maioria das outras pessoas estão sugerindo. Definitivamente não use MD5 .

SHA1/256 e MD5 são projetados para criar somas de verificação de arquivos e strings (e outros tipos de dados, se necessário). Por causa disso, eles são projetados para serem o mais rápidos possível, para que a soma de verificação seja rápida para gerar.

Essa velocidade rápida facilita muito a criação de senhas de força bruta, pois um programa bem escrito pode gerar facilmente milhares de hashes a cada segundo.

Em vez disso, use um algoritmo lento projetado especificamente para senhas. Eles são projetados para levar um pouco mais de tempo para serem gerados, com a vantagem de que os ataques de força bruta se tornam muito mais difíceis. Por causa disso, as senhas serão muito mais seguras.

Você não experimentará nenhuma desvantagem significativa de desempenho se estiver analisando apenas a criptografia de senhas individuais, uma de cada vez, que é a implementação normal de armazenamento e verificação de senhas. É apenas a granel onde está a diferença real.

Eu pessoalmente gosto do bcrypt. Deve haver uma versão em Perl disponível, pois uma rápida pesquisa no Google rendeu várias correspondências possíveis.