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

Método de hash de senha do MySQL antigo vs novo


Em algumas condições, você ainda pode definir e usar uma "nova senha de algoritmo de hash".
Os servidores MySQL 4.1+ são capazes de lidar com ambos os algoritmos de login. Qual delas é usada é independente da variável old-passwords. Se o MySQL encontrar um hash de 41 caracteres começando com *, ele usará o novo sistema. E a função PASSWORD() também é capaz de usar ambos os algoritmos. Se o campo mysql.user.Password for grande o suficiente para armazenar 41 caracteres e a variável old-passwords for 0, ele criará uma "nova" senha. O documentação para senhas_antigas diz Variable Scope Both então você pode alterá-lo para sua sessão.
Conecte-se ao servidor MySQL (com um cliente que seja capaz de fazê-lo apesar do global old_passwords=1), ex. HeidiSQL e tente o seguinte:
SET SESSION old_passwords=0;
SELECT @@global.old_passwords,@@session.old_passwords, Length(PASSWORD('abc'));

Se imprimir 1, 0, 41 (o que significa que o old_passwords global está ativado, mas para a sessão está desativado e PASSWORD() retornou uma senha "nova"), você deve poder definir uma nova senha usando o novo algoritmo para sua conta na mesma sessão.

Mas se o dreamhost realmente quiser desabilitar o novo algoritmo de senhas, o campo mysql.user.Password terá menos de 41 caracteres e não há nada você pode fazer sobre isso (exceto importuná-los).