> qr-optimized | efficient | modern <
// Codificación Base45 optimizada para códigos QR y certificados digitales
Eficiente para códigos QR
Pensado para el modo alfanumérico de los códigos QR, maximizando la densidad de datos y la fiabilidad del escaneo.
Cumple la RFC 9285
Implementa la especificación oficial Base45 utilizada en el Certificado COVID Digital de la UE y otros certificados sanitarios.
Ahorro de espacio
Más eficiente que Base32 y más adecuado que Base64 cuando los datos se renderizan dentro de un código QR.
>> información técnica
Cómo funciona Base45:
Base45 utiliza 45 caracteres compatibles con el modo alfanumérico de los códigos QR. Los datos se codifican en grupos de 2 bytes a 3 caracteres Base45, consiguiendo una mejor eficiencia de almacenamiento en el QR que con Base64.
Ejemplo:
"Hello" → %69 VD92EX0
Por qué usar Base45:
- >Optimizar la densidad de datos en códigos QR
- >Cumplir con el estándar del Certificado COVID Digital de la UE
- >Reducir el tamaño y la complejidad visual del código QR
- >Mejorar la tasa de lectura en móviles y escáneres con óptica limitada
- >Reemplazar Base64 cuando el objetivo final es un código QR
>> preguntas frecuentes
¿Qué es la codificación Base45?
Base45 es un esquema de codificación definido en la RFC 9285 que usa 45 caracteres seleccionados para funcionar de forma eficiente con el modo alfanumérico de los códigos QR.
¿Por qué se creó Base45?
Base45 se creó para almacenar datos de forma eficiente dentro de códigos QR, especialmente para el Certificado COVID Digital de la UE y otros certificados sanitarios.
¿En qué se diferencia Base45 de otras codificaciones?
Base45 usa exactamente los caracteres admitidos por el modo alfanumérico de los códigos QR, logrando una eficiencia un 20–30 % mayor que Base64 cuando se codifica en un QR.
¿En qué casos debería usar Base45?
Base45 es especialmente útil cuando necesitas empaquetar datos estructurados (certificados, tokens, configuraciones) dentro de un código QR pequeño y fácilmente escaneable.
// Referencia rápida
| Entrada | Base45 |
|---|---|
| AB | BB8 |
| Hello!! | %69 VD92EX0 |
| base-45 | UJCLQE7W581 |
| ietf! | QED8WEX0 |
// Ejemplos 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
>> Más preguntas
P: ¿Qué 45 caracteres usa Base45?
R: Exactamente los del modo alfanumérico del QR: 0–9, A–Z (solo mayúsculas), el espacio y $ % * + - . / :. El alfabeto está definido en la RFC 9285.
P: ¿Cuánto mide una cadena Base45 respecto a los bytes originales?
R: Cada 2 bytes de entrada dan 3 caracteres y un byte suelto da 2. Para n bytes resultan 3·⌊n/2⌋ + 2·(n mod 2) caracteres, es decir, aproximadamente el 150 % de la longitud de entrada.
P: ¿Por qué Base45 es mejor que Base64 para códigos QR?
R: El modo alfanumérico del QR usa unos 5,5 bits por carácter, frente a 8 bits del modo byte (necesario para + y / de Base64). Así cabe más información en el mismo código. Los certificados COVID de la UE siguen CBOR → COSE → zlib → Base45 → prefijo HC1: → QR.