MYSQL: Encriptação usando PASSWORD e MD5

De Wiki Hackstore

Supondo que você possua uma tabela de autenticação de usuários no formato abaixo, veja alguns exemplos de inserção de caracteres encriptados pelo próprio mysql:

mysql> desc user_auth;
+-------------+----------+------+-----+---------+-------+
| Field       | Type     | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| user_name   | char(30) | NO   | PRI | NULL    |       |
| user_passwd | char(60) | YES  |     | NULL    |       |
| user_group  | char(10) | YES  |     | NULL    |       |
+-------------+----------+------+-----+---------+-------+

Encriptação usando PASSWORD

Existe uma função no MySQL chamada PASSWORD que já insere uma senha em uma tabela encriptada. Essa é a sintaxe:

INSERT INTO user_auth VALUES ('usuario',PASSWORD('teste'),);

Exemplo de hash gerado pelo PASSWORD:

3cae2dc75217635a

Encriptação usando MD5

É aconselhável a utilização do MD5, pois o mesmo cria um hash de 32 caracteres, sendo assim muito mais seguro que o password. Sem contar que MD5 é padrão de outros bancos, por exemplo o PostgreSQL, o que facilitaria e muito uma futura migração.

INSERT INTO user_auth VALUES ('usuario',MD5('teste'),);

Exemplo de hash gerado pelo MD5:

698dc19d489c4e4db73e28a713eab07b