> qr-optimized | efficient | modern <
// Codificação Base45 otimizada para QR codes e certificados digitais
Eficiente em QR codes
Pensado para o modo alfanumérico de QR codes, maximizando a densidade de dados e a confiabilidade de leitura.
Compatível com a RFC 9285
Implementa a especificação oficial Base45 usada no Certificado COVID Digital da UE e em outros certificados digitais.
Mais compacto
Mais eficiente que Base32 e mais apropriado que Base64 quando o destino é um QR code impresso ou exibido em tela.
>> informações técnicas
Como funciona o Base45:
Base45 usa 45 caracteres compatíveis com o modo alfanumérico dos QR codes. Os dados são codificados em blocos de 2 bytes para 3 caracteres Base45, obtendo melhor eficiência de armazenamento no QR em relação ao Base64.
Exemplo:
"Hello" → %69 VD92EX0
Por que usar Base45:
- >Otimizar a densidade de dados em QR codes
- >Atender ao padrão de certificados digitais, como o Certificado COVID Digital da UE
- >Gerar QR codes menores e com menos módulos
- >Aumentar a taxa de leitura em ambientes e câmeras adversos
- >Substituir Base64 quando a carga útil final será renderizada em um QR code
>> perguntas frequentes
O que é codificação Base45?
Base45 é um esquema de codificação definido na RFC 9285 que usa 45 caracteres escolhidos para trabalhar de forma eficiente com o modo alfanumérico dos QR codes.
Por que o Base45 foi criado?
O Base45 foi criado para codificar dados de forma eficiente em QR codes, especialmente para certificados digitais de saúde, como o Certificado COVID Digital da UE.
Qual a diferença entre Base45 e outros encodings?
Ao contrário do Base64, o Base45 utiliza apenas caracteres suportados pelo modo alfanumérico do QR code, o que gera melhor aproveitamento da capacidade do QR.
Quando devo usar Base45?
Use Base45 quando precisar colocar dados estruturados (por exemplo, certificados, tokens de configuração) dentro de um QR code compacto e confiável.
// Referência rápida
| Entrada | Base45 |
|---|---|
| AB | BB8 |
| Hello!! | %69 VD92EX0 |
| base-45 | UJCLQE7W581 |
| ietf! | QED8WEX0 |
// Exemplos de código
Alphabet 0-9 A-Z space $ % * + - . / : (45 characters) Length 2 bytes -> 3 chars, 1 byte -> 2 chars Python pip install base45 base45.b45encode(b"AB") # b'BB8' Node.js npm i base45-js // RFC 9285 EU DCC JSON -> CBOR -> COSE -> zlib -> Base45 -> "HC1:" -> QR
>> Mais perguntas
P: Quais são os 45 caracteres do Base45?
R: Exatamente os do modo alfanumérico do QR: 0–9, A–Z (apenas maiúsculas), espaço e $ % * + - . / :. O alfabeto é definido na RFC 9285.
P: Qual o comprimento de uma string Base45 em relação aos bytes originais?
R: Cada 2 bytes de entrada geram 3 caracteres e um byte isolado gera 2. Para n bytes resultam 3·⌊n/2⌋ + 2·(n mod 2) caracteres, cerca de 150 % do comprimento da entrada.
P: Por que Base45 é melhor que Base64 para QR codes?
R: O modo alfanumérico do QR usa cerca de 5,5 bits por caractere, contra 8 bits do modo byte (necessário para + e / do Base64). Assim cabe mais dado no mesmo código. Os certificados COVID da UE seguem CBOR → COSE → zlib → Base45 → prefixo HC1: → QR.