Como funciona o hash de senha do MySQL?

O MySQL usa hashing criptográfico para armazenar senhas de usuários de forma segura. Em vez de armazenar as senhas em texto puro, o MySQL as converte em strings de hash de comprimento fixo usando funções matemáticas unidirecionais. Quando um usuário tenta fazer login, o MySQL gera o hash da senha fornecida e o compara com o hash armazenado. Se coincidirem, a autenticação tem sucesso. Essa abordagem garante que, mesmo que alguém obtenha acesso ao banco de dados, não será possível ler diretamente as senhas dos usuários.

O algoritmo moderno MySQL Native Password aplica o hash SHA-1 duas vezes: SHA1(SHA1(password)). Esse duplo hashing fornece uma camada adicional de segurança. A string hexadecimal resultante de 40 caracteres recebe um asterisco (*) como prefixo para indicar que é uma senha hash, produzindo valores como *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

Descrição da ferramenta

Este MySQL Password Hash Generator cria hashes de autenticação compatíveis com os bancos de dados MySQL e MariaDB. Insira qualquer senha e gere instantaneamente o hash correspondente, que pode ser usado diretamente em instruções SQL como CREATE USER ou ALTER USER. A ferramenta oferece suporte tanto ao formato moderno MySQL Native Password (MySQL 4.1 e posteriores) quanto ao formato legado Old Password para sistemas mais antigos.

Exemplos

MySQL Native Password (4.1+):

  • Entrada: mypassword
  • Saída: *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pré-4.1):

  • Entrada: mypassword
  • Saída: 162eebfb6477e5d3

Uso em SQL:

-- Criar usuário com senha hash
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- Atualizar senha de usuário existente
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

Recursos

  • MySQL Native Password: gera hashes SHA1(SHA1(password)) para MySQL 4.1+ e MariaDB
  • Legacy Old Password: suporta o formato de hash pré‑MySQL 4.1 para compatibilidade retroativa
  • Hash em tempo real: o hash é atualizado instantaneamente enquanto você digita
  • Alternar visibilidade da senha: exibe ou oculta a senha digitada para facilitar a inserção
  • Cópia com um clique: copie rapidamente o hash gerado para a área de transferência

Casos de uso

  • Criar contas de usuário MySQL com senhas pré‑hashadas em scripts de implantação
  • Migrar usuários entre bancos de dados MySQL preservando os hashes de senha
  • Testar e validar configurações de autenticação MySQL
  • Gerar hashes de senha para aplicações compatíveis com MySQL
  • Solucionar problemas de autenticação comparando hashes esperados e reais

Formatos de hash suportados

Formato Algoritmo Versão MySQL Exemplo de saída
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password Hash personalizado Pré‑4.1 6f8c114b58f2ce9e

Considerações de segurança

O hash MySQL Native Password é o formato recomendado para todas as instalações modernas de MySQL e MariaDB. O formato Old Password é considerado inseguro e deve ser usado apenas para compatibilidade com sistemas legados que não podem ser atualizados. O MySQL 8.0 introduziu caching_sha2_password como novo padrão, mas mysql_native_password continua amplamente suportado e comumente utilizado.