> qr-optimized | efficient | modern <
// Base45-koding optimalisert for QR-koder og digitale sertifikater
Effektivt for QR-koder
Utnytter tegnsettet i QR‑kodenes alfanumeriske modus for å pakke mer data inn i samme koderute.
I samsvar med RFC 9285
Følger den offisielle Base45‑standarden som brukes i EUs digitale koronasertifikat og andre digitale helsesertifikater.
Plassbesparende
Mer effektivt enn Base32 når data skal inn i en QR‑kode, noe som gir mindre og enklere koder å skanne.
>> teknisk info
Hvordan Base45 fungerer:
Base45 bruker 45 tegn som er tilpasset QR‑kodenes alfanumeriske modus. Data kodes i blokker på 2 byte til 3 Base45‑tegn, som gir bedre effektivitet i QR‑koder enn Base64.
Eksempel:
"Hello" → %69 VD92EX0
Hvorfor bruke Base45:
- >Høyere datatetthet i QR‑koder
- >I tråd med standarder for digitale EU‑sertifikater
- >Mer effektivt enn Base64 når data skal inn i QR‑koder
- >Mindre og mindre komplekse QR‑koder
- >Mer robust skanning på tvers av kameraer og skannere
>> ofte stilte spørsmål
Hva er Base45‑koding?
Base45 er et kodingsskjema definert i RFC 9285 som bruker 45 tegn tilpasset QR‑kodenes alfanumeriske modus, for å øke datatettheten i koden.
Hvorfor ble Base45 utviklet?
Base45 ble utviklet for å kunne lagre mer informasjon i QR‑koder, spesielt for digitale helsesertifikater som EUs digitale koronasertifikat.
Hvordan skiller Base45 seg fra andre kodingsmetoder?
Base45 bruker nøyaktig det tegnsettet som støttes i QR‑kodenes alfanumeriske modus, og kan derfor lagre omtrent 20–30 % mer data enn Base64 i en QR‑kode av samme størrelse.
Hvor brukes Base45 i praksis?
Base45 brukes hovedsakelig i digitale helsesertifikater, EUs digitale koronasertifikat og andre løsninger der data må dyttes kompakt inn i én QR‑kode.
// Hurtigreferanse
| Inndata | Base45 |
|---|---|
| AB | BB8 |
| Hello!! | %69 VD92EX0 |
| base-45 | UJCLQE7W581 |
| ietf! | QED8WEX0 |
// Kodeeksempler
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
>> Flere spørsmål
S: Hvilke 45 tegn bruker Base45?
S: Nøyaktig de fra QR-kodens alfanumeriske modus: 0–9, A–Z (bare store bokstaver), mellomrom og $ % * + - . / :. Alfabetet er definert i RFC 9285.
S: Hvor lang er en Base45-streng sammenlignet med de opprinnelige bytene?
S: Hver 2 inndatabyte gir 3 tegn, en enslig gjenværende byte gir 2 tegn. For n byte blir det 3·⌊n/2⌋ + 2·(n mod 2) tegn, omtrent 150 % av inndatalengden.
S: Hvorfor er Base45 bedre enn Base64 for QR-koder?
S: QR-kodens alfanumeriske modus bruker rundt 5,5 bit per tegn, bytemodus (som Base64s + og / krever) 8 bit. Derfor får man plass til mer data i samme kode. EUs covid-sertifikater følger CBOR → COSE → zlib → Base45 → prefiks HC1: → QR.