Hash, HMAC, criptografia e JWT podem ser inspecionados no navegador. Não envie os dados para fora do dispositivo e escolha o algoritmo de acordo com o objetivo.
Uma função hash produz um resumo de tamanho fixo a partir de entradas de comprimentos variados. Os mesmos bytes geram o mesmo resultado; até uma quebra de linha diferente pode alterá-lo. Use o gerador de hashes para comparar checksums e dados de teste.
MD5 produz 128 bits, ou 32 caracteres hexadecimais, e SHA-1 produz 160 bits. Ambos têm ataques de colisão conhecidos e não servem para novas assinaturas ou proteção de integridade contra invasores. MD5 ainda aparece em verificações de alterações acidentais.
SHA-256 e SHA-512 pertencem à família SHA-2 e geram 256 e 512 bits. SHA-512 pode ser mais rápido em hardware de 64 bits, dependendo da implementação. Um hash rápido sozinho não é apropriado para senhas: use Argon2id, scrypt ou bcrypt bem configurado, com salt.
HMAC combina uma função hash com uma chave secreta compartilhada. Um resultado válido comprova integridade e conhecimento da chave, mas não uma identidade pública. O gerador HMAC ajuda a reproduzir assinaturas durante o desenvolvimento.
AWS Signature Version 4 usa HMAC-SHA256, chaves derivadas e uma requisição canônica. Método, caminho, cabeçalhos e hash do corpo seguem a especificação; calcular apenas o hash do corpo não produz uma assinatura AWS válida.
GitHub envia a assinatura de webhook em X-Hub-Signature-256. Stripe usa Stripe-Signature e inclui um timestamp no cálculo. Verifique os bytes originais da requisição, compare assinaturas em tempo constante e aplique proteção contra repetição. JWT HS256 também usa HMAC-SHA256.
AES é simétrico: a mesma chave secreta cifra e decifra. Além do tamanho da chave, escolha o modo adequado. AES-GCM usa uma tag de autenticação e exige que o nonce não seja reutilizado com a mesma chave. A ferramenta AES permite estudar casos de teste.
RSA usa chaves pública e privada. Por seus limites de tamanho e custo, normalmente cifra uma chave simétrica aleatória em vez de um arquivo inteiro. AES processa então os dados da aplicação.
Não use RSA sem padding. A ferramenta RSA emprega RSA-OAEP; confira os parâmetros de hash e formatos de chave ao interoperar. Criptografia RSA-OAEP não é uma assinatura RSA. Proteja chaves privadas e dados decifrados.
Um JWT assinado no formato compacto JWS tem três partes Base64url separadas por pontos: cabeçalho, payload e assinatura. {"alg":"HS256","typ":"JWT"} indica HMAC-SHA256; RS256 identifica uma assinatura RSA com SHA-256.
O payload contém claims como sub, iss, aud, exp e iat: sujeito, emissor, destinatário, expiração e emissão. O decodificador JWT torna essas informações legíveis. Decodificar não verifica a assinatura nem comprova que o token deve ser aceito.
Defina os algoritmos permitidos no servidor e valide assinatura, emissor, destinatário e expiração. Não confie em alg sem verificar e não aceite none por engano. Uma assinatura JWS não cifra o payload; para confidencialidade, é necessário um mecanismo como JWE.
Não. O SHA-256 é um hash rápido de uso geral, o que facilita a quebra de senhas por força bruta. Use bcrypt, scrypt ou Argon2 em vez disso — eles são projetados para serem lentos e exigentes em memória. Nosso Gerador de Senhas cria senhas fortes; o armazenamento deve usar bcrypt/Argon2 no seu servidor.
A codificação (como Base64) transforma dados para compatibilidade — é reversível sem uma chave. A criptografia (como AES) protege a confidencialidade — é reversível apenas com a chave correta. Nunca use Base64 como medida de segurança.
Leia exp no decodificador JWT e compare com o horário Unix atual. Um token não expirado não comprova uma assinatura válida; valide também assinatura, emissor e destinatário no servidor.
Sim, ao usar crypto.getRandomValues(), que é o que nosso Gerador de Senhas usa. Esse é o CSPRNG do navegador, a mesma fonte de entropia usada pelo sistema operacional para a geração de chaves.
AES-256 para todas as novas aplicações. O AES-128 é tecnicamente seguro contra ataques conhecidos, mas o AES-256 oferece uma margem maior. A diferença de desempenho é insignificante em hardware moderno.