# Gerador de Bcrypt

Crie um hash de senha bcrypt com um salt aleatório de 16 bytes e um fator de custo de 4 a 12. A ferramenta retorna a string criptográfica modular padrão que começa com $2a$ e que PHP password_verify, Node.js bcrypt, Spring Security e a maioria dos frameworks aceitam. Use-a para criar usuários de teste, redefinir a senha de administrador em um banco de dados ou verificar seu próprio código de hash. A senha nunca é exibida nem armazenada.

## Perguntas frequentes

### O que é bcrypt?

Bcrypt é uma função de hash de senhas do 1999 baseada na cifra Blowfish. Ela combina um salt aleatório com um custo ajustável; cada etapa adicional do custo dobra o trabalho que um atacante precisa realizar por tentativa. Continua sendo uma opção amplamente compatível para armazenar senhas.

### O que significa a string de saída?

Um hash como $2a$10$ seguido de 53 caracteres contém a versão 2a, o custo 10, um salt de 22 caracteres e um hash de 31 caracteres, todos no alfabeto Base64 próprio do bcrypt. Armazene a string inteira, pois o verificador lê dela o salt e o custo.

### Qual fator de custo devo escolher?

A ferramenta permite um custo de 4 a 12 e usa 10 por padrão, um valor comum nos frameworks. Cada etapa dobra o tempo; portanto, o custo 12 leva cerca de quatro vezes mais que o custo 10. Em produção, escolha o maior custo que seus servidores conseguem suportar em aproximadamente 100 a 250 milissegundos.

### Por que o custo é limitado a 12?

Custos mais altos levam segundos por hash e fariam uma única solicitação ocupar o servidor por muito tempo. O custo 12 já é robusto para a maioria dos aplicativos, e você pode gerar novamente os hashes com um custo maior no seu próprio ambiente, se necessário.

### Por que a mesma senha produz um hash diferente a cada vez?

A ferramenta gera um novo salt aleatório de 16 bytes para cada hash. Salts diferentes produzem strings diferentes, mas todos são verificados com a mesma senha. Isso impede que atacantes usem tabelas pré-computadas.

### Há um limite de tamanho para a senha?

Sim. O bcrypt usa apenas os primeiros 72 bytes de uma senha, então a ferramenta rejeita senhas mais longas em vez de ignorar o restante sem avisar. Caracteres não ASCII ocupam vários bytes cada em UTF-8.

### PHP ou Laravel aceita um hash $2a$?

Sim. PHP password_verify, Laravel, Symfony e os plugins WordPress que usam password_hash aceitam hashes $2a$, $2b$ e $2y$, que diferem apenas por correções de bugs históricos. Node.js bcrypt, bcryptjs, Python bcrypt e Spring Security também aceitam $2a$.

### Minha senha é armazenada ou registrada em logs?

Não. A senha é usada apenas para calcular o hash durante a solicitação. Ela é removida da resposta e nunca é gravada em logs ou no armazenamento.

### Devo usar bcrypt ou Argon2?

Argon2id é a recomendação mais recente da OWASP porque exige bastante memória, o que torna os ataques com GPU mais caros. bcrypt continua sendo aceitável e conta com amplo suporte em bibliotecas, por isso é uma opção sólida quando Argon2 não está disponível.

### Como verifico uma senha com um hash bcrypt?

Use o Bcrypt Verifier neste site ou chame a função verify do seu framework. Nunca compare strings bcrypt diretamente, pois um novo hash da mesma senha sempre será diferente.

Seu anúncio aqui?

[Envie-nos um e-mail](mailto:hi@dennn.is?subject=Publicidade%20em%20OneClick%20Pro)

[Anúncio O conjunto de plugins pronto para agentes para WordPress.](https://sleekwp.com/?ref=oneclickpro)
