Criptografia de senha com PHP
Dica publicada em PHP / Segurança
Criptografia de senha com PHP
Hoje peguei um banco que tem a variável OLD_PASSWORD setada para ON no my.ini. Como migrei o banco de dados de outro servidor, a função PASSWORD() retornava uma senha criptografada com apenas 16 caracteres, ex:
mysql> SELECT PASSWORD('mypass');
mysql> SELECT PASSWORD('mypass');
Segue a função:
Até a próxima.
mysql> SELECT PASSWORD('mypass');
+--------------------+
| PASSWORD('mypass') |
+--------------------+
| 6f8c114b58f2ce9e |
+--------------------+
e não uma senha com caracteres 41, ex:
mysql> SELECT PASSWORD('mypass');
+-------------------------------------------+
| PASSWORD('mypass') |
+-------------------------------------------+
| *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 |
+-------------------------------------------+
Fuçando na Internet, mais precisamente no MySQL 5.0 Reference Manual, achei uma função enviada por Michiel Vleugel em 27 de novembro último (sorry, não tem email, link ou referência à pessoa), que eu mudei apenas os nomes de variáveis para que ficasse mais compreensíveis.
Segue a função:
function new_password_mysql($senha)
{
$cript_pass=sha1($senha,true);
$cript_pass=sha1($cript_pass);
return "*".strtoupper($cript_pass);
}
{
$cript_pass=sha1($senha,true);
$cript_pass=sha1($cript_pass);
return "*".strtoupper($cript_pass);
}
Até a próxima.