Hashes/Cripto

Bcrypt Hash + Verify

Faça hash de senhas com bcrypt (com salt aleatório e custo configurável) e verifique uma senha em relação a um hash bcrypt existente.


                    

Bcrypt is a deliberately slow password-hashing algorithm: unlike MD5 or SHA-256, it intentionally requires heavy computation so that brute-forcing passwords stays impractical even if a database of hashes leaks.

How to use it

Common uses

Things to keep in mind

Pick a cost factor that keeps hashing around 100-300ms on your target server — a balance between security and login-time load.

Bcrypt truncates passwords longer than 72 bytes — characters beyond that limit are ignored by the algorithm.

Artigo sobre esta ferramenta: Bcrypt: por que as senhas são hasheadas devagar, não rápido

Perguntas frequentes

Preciso gerar um salt separadamente para usar bcrypt?

Não. O bcrypt gera automaticamente um salt aleatório e o incorpora ao próprio hash resultante, então não há necessidade de armazená-lo à parte.

Existe limite de tamanho para a senha?

Sim — o bcrypt considera apenas os primeiros 72 bytes da senha; qualquer caractere além disso é silenciosamente ignorado no cálculo do hash, sem gerar erro.

O que o "custo" representa e como escolher um valor?

O custo controla quantas rodadas internas o algoritmo executa; cada incremento dobra o tempo de processamento. Valores mais altos dificultam ataques de força bruta, mas tornam o cálculo mais lento — escolha o maior valor que seu hardware suporta com um tempo de resposta aceitável.

Existe um limite para o comprimento da senha no bcrypt?

Sim, o bcrypt processa apenas os primeiros 72 bytes da senha — qualquer coisa além disso é simplesmente descartada, sem aviso. Na prática, isso raramente é um problema, mas vale lembrar disso ao lidar com senhas muito longas ou caracteres não-ASCII, em que um caractere pode ocupar vários bytes.

Por que o bcrypt ainda é recomendado, já que existe o Argon2?

O bcrypt é testado na prática há décadas, é amplamente suportado em todas as linguagens e frameworks e continua sendo uma escolha totalmente confiável. O Argon2 é recomendado como prioridade para novos sistemas por sua proteção contra ataques em GPU/ASIC, mas o bcrypt não é considerado inseguro — apenas menos resistente a hardware especializado.

Artigos: Hashes/Cripto

Hash Generator: em que MD5, SHA-1 e SHA-256 diferem entre si

Por que o MD5 ainda é usado para verificar a integridade de arquivos, mas não para senhas.

Checksum Verifier: como verificar que um arquivo não está corrompido

Por que um checksum coincidente confirma a integridade de um arquivo, mas não quem o criou.

HMAC: em que um hash com chave difere de um hash comum

Por que um SHA-256 comum não protege contra a adulteração de uma mensagem, mas o HMAC sim.

UUID: como são gerados identificadores que quase nunca se repetem

Por que um UUID v4 pode ser gerado de forma independente em milhões de máquinas sem risco de colisão.

Gerador de senhas: o que realmente torna uma senha forte

Por que uma senha longa feita de palavras de dicionário é mais forte que uma curta com símbolos e números.

AES: como funciona a criptografia simétrica

Por que a mesma chave cifra e decifra os dados no AES, e como isso difere da criptografia assimétrica.

Argon2: por que esse algoritmo venceu a competição de hashing de senhas

Como o Argon2 se defende melhor contra ataques com GPU do que algoritmos de hashing de senhas mais antigos.

Scrypt: por que o algoritmo precisa de tanta memória

Por que o scrypt exige deliberadamente muita memória para dificultar a quebra em dispositivos ASIC.

TOTP: como funcionam os códigos de uso único em apps autenticadores

Por que o código do Google Authenticator funciona sem internet e se sincroniza com o servidor apenas pela hora.

PBKDF2: o padrão mais antigo de alongamento de chave

Por que o número de iterações recomendado para o PBKDF2 cresce a cada ano.

X.509: o que há dentro de um certificado SSL

O que exatamente o navegador verifica no certificado de um site antes de mostrar o cadeado verde.

PGP: como funciona a criptografia de chave pública e privada

Por que se pode compartilhar livremente uma chave pública PGP, mas nunca a privada.