Base45 (EU Cert)
Codifique e decodifique dados em Base45, o formato usado nos certificados digitais COVID da União Europeia para caber em QR codes.
Base45
—
Por que o certificado europeu usa Base45
Você abriu o QR de um certificado COVID europeu, viu uma sopa de letras começando com HC1: e ficou curioso. Ou está lendo a RFC 9285 e quer ver o alfabeto funcionando com um exemplo seu, sem instalar biblioteca nenhuma. Esta página cobre a camada de baixo dessa pilha: você digita um texto, ela devolve a codificação Base45 correspondente e atualiza a cada tecla.
O algoritmo trabalha em pares de bytes. Cada par vira um número de 16 bits (a vezes 256 mais b) escrito em três dígitos base 45, do menos significativo para o mais significativo. Sobrou um byte solto no fim? Ele sai em dois dígitos. O alfabeto tem 45 símbolos: 0-9, A-Z, espaço e os sinais $%*+-./: — exatamente a tabela do modo alfanumérico do QR. Digite AB e você recebe BB8, o vetor de teste da própria RFC.
Repare que Base45 produz mais caracteres que Base64 (três para cada dois bytes, contra quatro para cada três) e mesmo assim rende um QR menor: no modo alfanumérico cada caractere ocupa cerca de 5,5 bits em vez de 8. Duas limitações honestas: a página só codifica, apesar de a descrição prometer decodificação, e o resultado não é um certificado válido — o DCC real leva CBOR, assinatura COSE, zlib e o prefixo HC1: por cima. Tudo roda no seu navegador.
Perguntas frequentes
Dá para decodificar Base45 aqui?
Por que não usar Base64 dentro do QR?
Consigo montar um certificado da UE com isso?
Ferramentas Relacionadas
Idade do Cão em Anos Humanos
Converta a idade do seu cachorro em anos humanos pela fórmula científica da AVMA. Descubra a idade real do seu cão e entenda a fase de vida dele.
CSV para JSON
Converta CSV em JSON. A primeira linha vira chaves do objeto, demais linhas viram itens do array. Suporta separadores , ; e \t. Detecta números e booleans automaticamente. Tudo no navegador.
JSON para Classe C#
Converta JSON em uma classe C# com propriedades auto-implementadas. Detecta tipos primitivos, listas, arrays e objetos aninhados. Útil para .NET/Unity. Tudo no navegador.