De qual ferramenta de chave ou hash eu preciso
| Sua tarefa | Ferramenta |
|---|---|
| Ler um certificado: nomes, validade, fingerprints | Decodificador de certificados |
| Conferir um CSR antes de enviá-lo a uma CA | Decodificador de CSR |
| Converter entre PEM em texto e DER binário | PEM para DER, DER para PEM |
| Gerar o fingerprint de uma chave pública SSH ou convertê-la | Fingerprint de chave SSH |
| SHA-256 de um texto ou arquivo, em hex e Base64 | SHA-256 em Base64 |
| Content-MD5 e checksums legados | MD5 em Base64 |
| Assinar um webhook ou uma requisição de API | Gerador de HMAC |
integrity="sha384-…" para um script ou folha de estilo | Gerador de hash SRI |
| Uma string Base64 aleatória de qualquer comprimento | Gerador de Base64 aleatório |
APP_KEY do Laravel, chaves AES, segredos de JWT e HMAC | Gerador de chaves Base64 |
| Um nonce para uma Content Security Policy | Gerador de nonce CSP |
| Criptografar ou descriptografar texto com senha | Criptografar com AES, Descriptografar AES |
Onde o Base64 encontra a criptografia
PEM é o Base64 de ASN.1 codificado em DER entre linhas -----BEGIN …-----. Certificados, CSRs, chaves públicas e privadas usam esse formato. DER em Base64 começa com MII na maioria dos certificados e chaves RSA, com MFkw em chaves públicas EC P-256 e com MCowBQYDK2Vw em chaves públicas Ed25519, então o tipo muitas vezes fica visível antes de decodificar.
Chaves SSH usam outra estrutura. A parte AAAAC3NzaC1lZDI1NTE5… de uma linha ssh-ed25519 é o Base64 do blob da chave, e o conhecido fingerprint SHA256:… é o hash desse blob em Base64, sem preenchimento.
Hashes são bytes brutos. O SHA-256 do texto hello tem 32 bytes: 2cf24dba…9824 em 64 caracteres hex, ou LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ= em 44 caracteres Base64. Assinaturas de webhook, atributos SRI e headers Content-MD5 do S3 esperam a forma em Base64, e compará-la com um digest em hex é uma fonte comum de erros “signature mismatch”.
Segredos aleatórios em arquivos de configuração geralmente são 32 bytes aleatórios em Base64, por exemplo openssl rand -base64 32. O gerador de chaves produz o mesmo formato, com predefinições para frameworks comuns.
O que estas ferramentas não fazem
- Não verificam cadeias de certificados nem checam revogação. A página não consegue se conectar a outros servidores, de propósito.
- Não exibem o material de chaves privadas. As ferramentas de certificados mostram só o tipo e o tamanho de uma chave privada, e a ferramenta SSH lê apenas a parte pública de um arquivo de chave privada.
- MD5 e SHA-1 estão disponíveis por compatibilidade com sistemas existentes. Não os use em novos projetos de segurança.
Para assinar e verificar JWT, veja as ferramentas web e de tokens. Para entender por que nenhum desses Base64 é secreto por si só, leia codificação vs criptografia.
Perguntas frequentes
Por que hashes e chaves são escritos tantas vezes em Base64?
Porque fica mais curto que hex. Um hash SHA-256 tem 64 caracteres em hex, mas 44 em Base64, e uma chave de 32 bytes precisa de 44 caracteres Base64 em vez de 64. Atributos SRI, fingerprints SSH, assinaturas HMAC e a maioria dos segredos em .env usam Base64 por isso.
Base64 é uma forma de criptografia?
Não. Qualquer pessoa reverte Base64. Uma chave privada PEM é só o Base64 dos bytes da chave, e é por isso que o próprio arquivo precisa ser protegido. Criptografia de verdade, como na ferramenta de AES, exige uma chave ou senha para ser desfeita.
As chaves aleatórias são seguras?
Elas vêm do crypto.getRandomValues do navegador, a mesma fonte criptograficamente segura que o WebCrypto usa para gerar chaves. Nada é armazenado nem enviado, então cada valor existe só na sua tela até você copiá-lo.