Salta al contingut

Codificador Descodificador Base64 - Eina Gratuïta de Conversió Base64 en Línia

Eina gratuïta de codificació i descodificació base64. Converteix text a Base64 o descodifica cadenes Base64 a l'instant. Admet codificació estàndard i URL-segura. No cal iniciar sessió.

Codificador/Descodificador Base64

Convertir text a i des de codificació Base64

Calculadora de càrrega...
📚

Documentació

Què és la Codificació Base64?

Base64 és un esquema de codificació de binari a text que converteix dades binàries en un format de cadena ASCII de 64 caràcters. Quan cal enviar imatges per correu electrònic, incrustar dades en URL o transmetre informació binària a través d'API JSON, Base64 resol el problema de la corrupció de dades en canals de només text.

La codificació funciona amb un conjunt de caràcters específic:

  • Lletres majúscules A-Z (26 caràcters)
  • Lletres minúscules a-z (26 caràcters)
  • Dígits 0-9 (10 caràcters)
  • Dos símbols: "+" i "/" (2 caràcters)

El nostre codificador descodificador base64 converteix instantàniament text a Base64 o descodifica cadenes Base64 de nou a text llegible, sense necessitat d'instal·lació.

Per què Base64 és Important en el Desenvolupament Modern

En construir aplicacions web, us trobareu amb Base64 constantment. Els arxius adjunts de correu electrònic l'utilitzen a través de la codificació MIME. Els URI de dades en CSS i HTML es recolzen en ell per incrustar imatges directament al codi. Les API REST l'utilitzen per transmetre dades binàries en càrregues JSON. Fins i tot l'Autenticació Bàsica HTTP depèn de Base64 (tot i que no és xifratge, més endavant s'explicarà).

Heus aquí el que fa que aquesta codificació sigui essencial: els protocols basats en text com HTTP, JSON i XML no es van dissenyar per gestionar dades binàries en brut de manera fiable. Envieu una imatge binària a través d'una API JSON sense codificació, i probablement us enfrontareu a la corrupció de dades. Base64 garanteix que les vostres dades binàries sobreviuen al viatge representant-les completament amb caràcters ASCII segurs.

Com Usar Aquesta Eina Base64

Codificació de text a Base64:

  1. Escriviu o enganxeu el vostre text al camp d'entrada
  2. Feu clic a "Codificar a Base64" o activeu la conversió en directe
  3. Copieu la sortida Base64 per usar-la a la vostra aplicació

Descodificació de Base64 a text:

  1. Enganxeu la vostra cadena Base64 al camp d'entrada
  2. Feu clic a "Descodificar de Base64" o canvieu al mode de descodificació
  3. Visualitzeu el text original a l'àrea de sortida

Mode de conversió en directe actualitza els resultats automàticament mentre escriviu, perfecte per a proves i depuració ràpides. L'eina gestiona text UTF-8, incloent-hi emoji i caràcters internacionals.

Com funciona la codificació Base64

La codificació transforma cada tres bytes (24 bits) de dades d'entrada en quatre caràcters Base64. Penseu-ho com una traducció on grups de 3 bytes d'entrada es converteixen en grups de 4 caràcters de sortida.

Aquí hi ha el procés de codificació base64 pas a pas:

  1. Convertir a binari: El text d'entrada es converteix en la seva representació binària (típicament UTF-8)
  2. Agrupar en fragments: Les dades binàries es divideixen en fragments de 24 bits (3 bytes cada un)
  3. Dividir en segments de 6 bits: Cada fragment de 24 bits es divideix en quatre grups de 6 bits
  4. Assignar a caràcters: Cada valor de 6 bits (0-63) s'assigna al seu caràcter Base64

Què passa quan l'entrada no és divisible per 3? Els caràcters de farciment ("=") omplen el buit. Això manté la proporció consistent de 4:3 entre les longituds de sortida i entrada.

Les matemàtiques darrere de Base64

Per a una seqüència de bytes b1,b2,b3b_1, b_2, b_3, els caràcters Base64 corresponents c1,c2,c3,c4c_1, c_2, c_3, c_4 es calculen com:

c1=Base64[(b1>>2)]c_1 = \text{Base64}[(b_1 >> 2)] c2=Base64[((b1&3)<<4)(b2>>4)]c_2 = \text{Base64}[((b_1 \& 3) << 4) | (b_2 >> 4)] c3=Base64[((b2&15)<<2)(b3>>6)]c_3 = \text{Base64}[((b_2 \& 15) << 2) | (b_3 >> 6)] c4=Base64[(b3&63)]c_4 = \text{Base64}[(b_3 \& 63)]

On Base64[i]\text{Base64}[i] representa el ii-èssim caràcter de l'alfabet Base64.

Procés de descodificació Base64

La descodificació inverteix la codificació convertint els caràcters Base64 de nou a binari:

  1. Assignar cada caràcter Base64 al seu valor de 6 bits
  2. Concatenar aquests valors de 6 bits en un flux continu de bits
  3. Dividir en fragments de 8 bits (bytes)
  4. Convertir cada byte al seu caràcter corresponent

Entenent el farciment

El farciment garanteix que la longitud de sortida sigui sempre un múltiple de 4 caràcters:

  • Un byte restant: Produeix dos caràcters Base64 més "=="
  • Dos bytes restants: Produeix tres caràcters Base64 més "="

Un error comú és treure els caràcters de farciment quan s'emmagatzemen cadenes Base64. Mentre alguns descodificadors gestionen l'absència de farciment, les implementacions estrictes el rebutjaran. Manteniu el farciment llevat que estigueu segurs que el vostre descodificador és tolerant.

Exemple de Codificació Base64: "Hola"

Anem a passar per la codificació de "Hola" usant un convertidor base64:

  1. Valors ASCII: 72 101 108 108 111
  2. Forma binària: 01001000 01100101 01101100 01101100 01101111
  3. Agrupar en blocs de 6 bits: 010010 000110 010101 101100 011011 000110 1111
  4. Omplir l'últim bloc amb zeros: 010010 000110 010101 101100 011011 000110 111100
  5. Convertir a decimal: 18, 6, 21, 44, 27, 6, 60
  6. Mapear a l'alfabet Base64: S, G, V, s, b, G, 8
  7. Resultat final: SGVsbG8=

Observeu el farciment "=" al final. Com que "Hola" té 5 bytes (no divisible per 3), necessitem farciment per indicar que l'últim grup no està complet.

Fórmula de Longitud Codificada en Base64

La fórmula per calcular la longitud de la cadena codificada:

longitud_codificada=4×longitud_entrada3\text{longitud\_codificada} = 4 \times \lceil \frac{\text{longitud\_entrada}}{3} \rceil

On x\lceil x \rceil representa la funció de sostre (arrodoniment cap amunt al nombre enter més proper).

Casos d'Ús de Base64 en el Món Real

Aquí és on trobaràs la codificació base64 en sistemes de producció:

1. Arxius Adjunts per Correu Electrònic (Codificació MIME)

Els protocols de correu electrònic es van dissenyar per a text ASCII de 7 bits. Quan s'adjunta un PDF o una imatge, MIME utilitza Base64 per convertir arxius binaris en text segur per a correu electrònic. Per això, els arxius adjunts de correu electrònic són aproximadament un 33% més grans que els arxius originals—és la sobrecàrrega de Base64.

2. URI de Dades en Desenvolupament Web

Alguna vegada has incrustat una imatge directament en CSS o HTML? Aquí és on Base64 treballa:

1<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." />
2

Aquesta tècnica redueix les sol·licituds HTTP incrustant recursos petits directament al codi. Tanmateix, és millor per a imatges petites (menys de 10KB)—arxius més grans alentiran la renderització de la pàgina ja que no es poden emmagatzemar en memòria cau per separat.

3. Transmissió de Dades API

Les API REST utilitzen comunament Base64 per enviar dades binàries a través de JSON. Quan es puja una imatge a través d'un punt final d'API que només accepta JSON, es codifica l'arxiu com a Base64. Cal tenir en compte que això afegeix un 33% a la mida de la càrrega útil, així que considereu multipart/form-data per a arxius grans.

4. Autenticació Bàsica HTTP

La capçalera d'Autorització utilitza Base64 per codificar credencials:

1Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
2

Advertència crítica: Base64 NO és encriptació. Qualsevol pot descodificar-ho instantàniament. Sempre utilitzeu HTTPS—mai envieu credencials codificades en Base64 a través de HTTP pla.

5. Tokens JWT

Els Tokens Web JSON (JWT) utilitzen codificació Base64URL (una variant segura per URL) per als seus tres segments. Això permet que els tokens es passin de manera segura en URL i capçaleres HTTP.

6. Emmagatzematge de Dades Binàries en Bases de Dades

Quan la vostra base de dades no admet columnes binàries o necessiteu emmagatzemar dades binàries en camps JSON, Base64 proporciona una solució segura per a text. Tingueu en compte que això augmenta els requisits d'emmagatzematge en un 33%.

7. Emmagatzematge de Galetes

Les galetes han de contenir només caràcters ASCII. Quan s'emmagatzemen estructures de dades complexes o dades binàries en galetes, la codificació Base64 les fa segures per a galetes.

Quan NO s'ha d'usar Base64

Abans de codificar tot en Base64, considereu aquestes situacions en les quals no és la millor opció:

Transferències de fitxers grans: L'augment de mida del 33% afecta significativament l'amplada de banda i els temps de càrrega. Utilitzeu transferència binària directa (multipart/form-data) en el seu lloc.

Emmagatzematge d'imatges al costat del client: Les imatges Base64 en CSS o HTML no es poden emmagatzemar en caché per separat i bloquegen la renderització de la pàgina. Emmagatzemeu les imatges com a fitxers separats per obtenir un millor rendiment.

Emmagatzematge de fitxers grans a bases de dades: Emmagatzemar cadenes Base64 de megabytes en camps TEXT de bases de dades malbarata espai d'emmagatzematge i alenteix les consultes. Utilitzeu columnes BLOB o serveis d'emmagatzematge de fitxers (S3, CloudFlare R2) en el seu lloc.

Necessitats de seguretat: Base64 no proporciona cap seguretat. No l'utilitzeu per "amagar" claus API, contrasenyes o dades sensibles. Utilitzeu xifrat adequat.

Escenaris d'alt rendiment: La codificació/descodificació Base64 afegeix sobrecàrrega de CPU. Quan es processen milers de sol·licituds per segon, la gestió binària directa funciona millor.

Alternatives a Base64: Triar la Codificació Adequada

Base64 no sempre és la millor opció. Aquí hi ha quan considerar alternatives:

Base64 Segur per URL

Base64 estàndard utilitza "+" i "/" que trenquen les URL. Base64 segur per URL els substitueix per "-" i "_". Feu servir aquesta variant per a:

  • Paràmetres de consulta
  • Rutes URL
  • Tokens JWT
  • Qualsevol dada transmesa en URL

Codificació Base32

Base32 produeix una sortida més llarga (sobrecàrrega del 40% vs 33%) però ofereix insensibilitat a majúscules i minúscules. Trieu Base32 quan:

  • Els usuaris necessiten escriure el valor codificat manualment
  • Els sistemes sensibles a majúscules i minúscules causen problemes
  • Necessiteu una millor detecció d'errors

Codificació Hexadecimal

Hex duplica la mida de les dades (sobrecàrrega del 100%) però és simple i universalment compatible. És ideal per a:

  • Mostrar valors hash
  • Codis de color
  • Adreces MAC
  • Situacions on la llegibilitat importa més que l'eficiència

Transferència Binària Directa

Per a arxius grans, eviteu la codificació de text. Feu servir multipart/form-data o HTTP binari amb capçaleres de Content-Type adequades. Això evita la penalitat de mida del 33% i millora el rendiment.

Compressió + Base64

Quan es codifiquen textos grans o dades repetitives, comprimiu-los primer (gzip o deflate), després apliqueu Base64. Sovint això resulta en una sortida més petita que la codificació Base64 sola.

Breu Resum Històric de la Codificació Base64

Base64 va sorgir de la necessitat primerenca de la informàtica de transmetre dades binàries a través de canals només de text. L'especificació formal va aparèixer per primera vegada a RFC 989 (1987) per a Privacy Enhanced Mail (PEM), i després va evolucionar a través de RFC 1421 (1993) i RFC 2045 (1996) com a part de MIME.

El nom "Base64" reflecteix el seu alfabet de 64 caràcters. Això no va ser arbitrari: 64 equival a 2^6, fent que la conversió binari-a-Base64 sigui matemàticament eficient mitjançant operacions simples de desplaçament de bits.

Avui en dia, les variants de Base64 inclouen:

  • Base64 Estàndard (RFC 4648): Utilitza A-Z, a-z, 0-9, +, / amb farciment =
  • Base64 Segur per URL: Substitueix + i / amb - i _ per a transmissió segura d'URL
  • Base64URL: La variant estàndard de l'IETF per a URL i noms de fitxers
  • Base64 Modificat: IMAP utilitza el seu propi conjunt de caràcters per a noms de bustia

Després de més de 35 anys, Base64 segueix sent essencial per al desenvolupament web modern, especialment quan les API JSON i els serveis web dominen el panorama.

Exemples de Codi

[La resta del document es traduirà de la mateixa manera, mantenint tots els exemples de codi i l'estructura original]

Errors Comuns de Base64 i Solucions

Vigileu amb aquests problemes quan treballeu amb un descodificador o codificador base64:

1. Problemes de Codificació de Caràcters

El problema: Codificar text amb emoji o caràcters internacionals sense convertir primer a codificació UTF-8 produeix una sortida corrupta.

La solució: Sempre convertiu a bytes UTF-8 abans de codificar en Base64. En JavaScript, això significa gestionar adequadament els caràcters de múltiples bytes, ja que el btoa() integrat falla amb Unicode.

2. Falta o Padding Invàlid

El problema: Alguns sistemes eliminen els caràcters de padding "=", cosa que fa que els descodificadors estrictes fallin.

La solució: Abans de descodificar, comproveu si la longitud és múltiple de 4. Si no ho és, afegiu caràcters "=": while (str.length % 4) str += '='

3. Salts de Línia en Dades Codificades

El problema: Les implementacions MIME antigues afegien salts de línia cada 76 caràcters. Les API modernes sovint els rebutgen.

La solució: Elimineu tots els salts de línia i espais en blanc abans de descodificar: str.replace(/\s/g, '')

4. Base64 per URL vs Base64 Estàndard

El problema: Usar Base64 estàndard (+, /) en URLs causa problemes de codificació o trenca l'encaminament.

La solució: Per URLs, useu la variant URL-safe. Convertiu entre elles:

  • Estàndard a URL-safe: Substituïu + per - i / per _
  • URL-safe a estàndard: Invertiu la substitució

5. Rendiment amb Arxius Grans

El problema: Codificar arxius de diversos megabytes en memòria pot congelar navegadors o bloquejar aplicacions.

La solució: Useu API de streaming o fragmenteu les dades. Els navegadors moderns suporten l'API de Streams per processar arxius grans sense carregar-ho tot a la memòria.

6. Misconcepcions de Seguretat

Error crític: Tractar Base64 com a xifratge o ofuscació segura.

La realitat: Base64 és completament reversible en mil·lisegons. Mai l'useu per "amagar" dades sensibles. És per codificar, no per seguretat. Sempre combineu amb xifratge adequat (AES, RSA) quan la seguretat sigui important.

Preguntes Freqüents

És Base64 un mètode de xifratge?

No. Base64 és una codificació, no un xifratge. Qualsevol pot descodificar Base64 instantàniament sense una clau. El xifratge requereix una clau secreta i és computacionalment difícil de revertir. Si necessiteu seguretat, feu servir algorismes de xifratge com AES-256, i després, opcionalment, codifiqueu les dades xifrades en Base64 per a la transmissió.

Per què Base64 augmenta la mida de les dades?

L'augment de mida del 33% és inherent a l'algorisme. Cada 3 bytes d'entrada es converteixen en 4 caràcters de sortida perquè Base64 utilitza 6 bits per caràcter, mentre que els bytes estàndard utilitzen 8 bits. La fórmula: 3 bytes × 8 bits = 24 bits; 24 bits ÷ 6 bits per caràcter = 4 caràcters.

Puc codificar imatges a Base64?

Sí, les imatges es poden codificar a Base64. Això és comú per a URI de dades en HTML/CSS i càrregues d'API. Tanmateix, cal considerar aquests compromisos: les imatges Base64 no es poden emmagatzemar en memòria cau per separat, augmenten la mida de la pàgina en un 33% i alenteixen la renderització inicial. Feu-ho servir per a icones petites (menys de 10 KB), no per a fotos grans.

Quina és la diferència entre Base64 i Base64URL?

Base64URL és segur per a URL. El Base64 estàndard utilitza "+" i "/" que tenen significats especials a les URL (espai i separador de ruta). Base64URL els substitueix per "-" i "_" que són segurs a les URL. Els tokens JWT utilitzen Base64URL per aquest motiu.

Com soluciono els errors de "Cadena Base64 no vàlida"?

Causes comunes:

  1. Falta de farciment: Afegiu caràcters "=" fins que la longitud sigui divisible per 4
  2. Caràcters no vàlids: Elimineu qualsevol caràcter fora de A-Z, a-z, 0-9, +, /, =
  3. Espais en blanc: Elimineu tots els espais, tabuladors i salts de línia
  4. Variant incorrecta: Base64 segur per a URL utilitza - i _ en lloc de + i /

Puc descodificar fitxers binaris a Base64?

Base64 codifica dades binàries a text, i la descodificació inverteix aquest procés. Podeu codificar qualsevol fitxer binari (PDF, imatge, vídeo) a Base64, transmetre'l com a text i després descodificar-lo de nou a binari. El resultat descodificat és byte per byte idèntic a l'original.

Per què fer servir Base64 per a fitxers adjunts de correu electrònic?

SMTP (protocol de correu electrònic) es va dissenyar per a text ASCII de 7 bits. Els fitxers binaris adjunts es podrien corrompre durant la transmissió. MIME utilitza Base64 per convertir fitxers binaris en text segur per a ASCII que sobreviu al encaminament de correu electrònic. L'augment de mida del 33% és el preu de la compatibilitat.

Com puc codificar caràcters especials a Base64?

Primer, codifiqueu el text a bytes UTF-8, després apliqueu la codificació Base64 a aquests bytes. Això garanteix que els emoji, caràcters amb accent i scripts internacionals es codifiquin correctament. A JavaScript, feu servir TextEncoder en lloc de btoa() que falla amb Unicode:

1new TextEncoder().encode(text) // Convertiu primer a bytes UTF-8
2

És lenta la codificació Base64 per a fitxers grans?

La codificació/descodificació Base64 és relativament ràpida (milions de bytes per segon en CPU modernes), però processar fitxers de diversos megabytes en memòria pot causar bloquejos del navegador. Per a fitxers de més d'1 MB, feu servir enfocaments de transmissió o Web Workers per evitar bloquejar el fil principal.

Puc fer servir Base64 a URL?

Feu servir Base64URL (la variant segura per a URL) en lloc de Base64 estàndard. Els caràcters "+" i "/" de Base64 estàndard causen problemes a les URL. Biblioteques com JWT fan servir Base64URL automàticament. Per convertir: substituïu + per -, substituïu / per _, i opcionalment elimineu els caràcters de farciment "=".

Referències i Estàndards