Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual função usar para hash de senhas no MySQL?


Não é necessariamente que você não deva usar MD5, mas sim que você não deve usar apenas MD5, pois isso deixa você vulnerável a ataques de tabela de arco-íris (uma tabela de arco-íris é uma tabela de valores de hash pré-computados - se sua senha for remotamente comum ou simples, o invasor precisará apenas procurar o hash e saberá sua senha de texto simples. )

No mínimo, você deve adicionar um sal a cada senha para que qualquer tabela arco-íris existente seja inútil, forçando o invasor a gerar uma nova tabela arco-íris inteira apenas para seu banco de dados de senhas.

Melhor ainda é usar um sal diferente para cada senha em seu banco de dados, digamos, o nome de usuário ao qual está associado, para que um invasor não possa gerar uma tabela de arco-íris para todo o banco de dados e tenha que quebrar cada entrada separadamente.

MD5 também é um algoritmo muito rápido. A velocidade é o inimigo quando se trata de cracking - quanto mais tempo leva para gerar um hash, mais tempo leva para cada tentativa de um hacker. Algo simples como fazer o hash do texto simples 100 vezes com um novo sal adicional a cada vez seria quase imperceptível (se for o caso) para um usuário fazendo login no seu site, mas aumentaria o tempo necessário para forçar uma senha pela mesma 100 vezes.

Muito, muito mais detalhes aqui:http://www.codinghorror.com/blog/ archives/000953.html