bitlvl
SR

Podsetnik za Base64 i kodiranja

Sve o Base64 što vredi potražiti, uključujući jednolinijske komande za svaki jezik.

Staje na jednu uspravnu A4 / Letter stranicu; u prozoru za štampu izaberite „Sačuvaj kao PDF“ da biste zadržali kopiju.

Alfabet (vrednost → znak)

0 A1 B2 C3 D4 E5 F6 G7 H
8 I9 J10 K11 L12 M13 N14 O15 P
16 Q17 R18 S19 T20 U21 V22 W23 X
24 Y25 Z26 a27 b28 c29 d30 e31 f
32 g33 h34 i35 j36 k37 l38 m39 n
40 o41 p42 q43 r44 s45 t46 u47 v
48 w49 x50 y51 z52 053 154 255 3
56 457 558 659 760 861 962 +63 /

URL-safe (RFC 4648 §5): 62 = -, 63 = _, obično bez dopune. Znak dopune: =.

Kako radi

bajtovi: 01001000 01101001 00100001     "Hi!"
6-bitno: 010010 000110 100100 100001
znakovi:   S      G      k      h       "SGkh"
"Hi"  → 01001000 01101001 (16 bita) → 010010 000110 1001(00) → "SGk" + "="
"H"   → 8 bita → 010010 00(0000)         → "SA"  + "=="
Dužina ulaza mod 3 = 0bez dopune
= 12 znaka + ==
= 23 znaka + =
Veličina izlaza⌈n / 3⌉ × 4 (≈ +33 %)
Veličina ulaza iz izlazalen × 3 / 4 − dopuna
MIME (RFC 2045)redovi od 76 znakova, CRLF
PEMredovi od 64 znaka

Varijante

Base64A–Z a–z 0–9 + /; imejl, JSON, data: URL-ovi
Base64URL- i _ umesto + /; JWT, OAuth, imena datoteka
Base32A–Z 2–7; TOTP tajne, neosetljivo na veličinu slova, +60 %
Base32hex0–9 A–V; sortira se numerički (DNSSEC NSEC3)
Heks (Base16)0–9 a–f; +100 %, trivijalno za čitanje
Base58bez 0 O I l; Bitcoin adrese
Base85 / Ascii85+25 %; PDF, git binarni diff-ovi
bcrypt base64./A–Z a–z 0–9, drugačiji redosled; samo unutar bcrypt hešova

Komande

base64 file; base64 -dGNU coreutils (-w0 bez prelamanja)
openssl base64 -AOpenSSL (-A = jedan red)
echo -n 'text' | base64-n: bez završnog novog reda u ulazu
base64.b64encode(b), b64decode(s)Python; urlsafe_b64encode za URL-safe
btoa(s), atob(s)JS, samo Latin-1 stringovi; za UTF-8 koristite TextEncoder + fromCharCode, ili Buffer u Node-u
Buffer.from(s).toString('base64'); Buffer.from(b64, 'base64')Node.js (i 'base64url')
base64.StdEncoding.EncodeToString(b)Go; RawURLEncoding za URL-safe bez dopune
base64_encode(), base64_decode()PHP
Base64.strict_encode64(s)Ruby (encode64 prelama redove)
[Convert]::ToBase64String($bytes)PowerShell
SELECT TO_BASE64('x'); encode('x','base64')MySQL; PostgreSQL

Zapamtite

  • Base64 nije enkripcija; svako može da ga dekodira.
  • Greške pri dekodiranju su obično nedostajuće =, URL-safe string prosleđen strogom dekoderu, ili prelomi redova.
  • Tekst prvo mora da bude bajtovi: izaberite UTF-8 i naglasite to.
  • data: URL je data:<mime>;base64,<podaci>.

Rezultati i poruke ovog alata prikazuju se na engleskom.

Pitanja

Gde da kodiram ili dekodiram?

Base64 alat obrađuje tekst i datoteke u oba smera, uključujući URL-safe i ulaz bez dopune, i prikazuje dekodirane bajtove kao heks.