Utilia

Codificador i descodificador de Base64

Codifica i descodifica Base64 gratis, amb suport complet d'UTF-8 i l'opció base64url segura per a URL. Funciona al navegador, sense pujar res.

Com fer servir el codificador i descodificador de Base64

  1. Tria si vols codificar text a Base64 o descodificar Base64 per recuperar el text.
  2. Escriu o enganxa l’entrada al quadre de text. Les lletres amb accent, els alfabets no llatins i els emojis són compatibles.
  3. Si el resultat s’ha d’usar en una URL, en un nom de fitxer o en un JSON Web Token, activa l’opció Segur per a URL per obtenir la variant base64url.
  4. Llegeix el resultat i copia’l. Si estàs descodificant i l’entrada no és Base64 vàlid, un missatge d’error t’ho indica en lloc de produir sortida sense sentit.

Què és Base64?

Base64 és una manera de representar bytes arbitraris fent servir només 64 caràcters ASCII imprimibles: les lletres majúscules A–Z, les minúscules a–z, els dígits 0–9 i els dos símbols + i /. El caràcter = s’usa com a farciment al final. Existeix perquè molts sistemes es van dissenyar per transportar text, no dades binàries en brut. Els cossos dels correus electrònics, les capçaleres HTTP, els documents XML i JSON i les URL de dades esperen caràcters que sobrevisquin a ser copiats, registrats i transmesos sense alterar-se.

L’algorisme treballa amb grups de tres bytes (24 bits) i els divideix en quatre valors de 6 bits, cadascun dels quals correspon a un dels 64 caràcters. Per això la sortida de Base64 sempre és aproximadament un 33 % més gran que l’entrada: cada 3 bytes es converteixen en 4 caràcters. Quan la longitud de l’entrada no és múltiple de tres, s’afegeixen un o dos signes = perquè la longitud de la sortida sigui múltiple de quatre. Per exemple, la paraula Hi es codifica com SGk= i Hello com SGVsbG8=.

Text, bytes i UTF-8

Base64 codifica bytes, no caràcters, de manera que el text s’ha de convertir primer en bytes. Aquesta eina fa servir UTF-8, la codificació que usen gairebé totes les pàgines web i API modernes. Això vol dir que café es converteix en Y2Fmw6k= i que un emoji com 👍 (quatre bytes en UTF-8) es codifica correctament i es descodifica de nou com el mateix emoji. Molts scripts ràpids que depenen de l’antiga funció btoa() del navegador fallen amb qualsevol cosa que sigui fora de Latin-1; aquesta eina no té aquesta limitació.

Base64 estàndard i base64url

El Base64 estàndard fa servir + i /, que tenen significats especials en les URL i en les rutes de fitxers. La variant segura per a URL, anomenada base64url, substitueix + per - i / per _, i normalment elimina el farciment =. És el format que s’usa als JSON Web Tokens (JWT), en molts paràmetres d’OAuth i als escurçadors d’URL. Activa l’opció segura per a URL quan necessitis aquest format i deixa-la desactivada per als fitxers adjunts de correu, les URL de dades o els fitxers de configuració que esperen Base64 estàndard.

Base64 no és xifratge

Aquest és el malentès més freqüent. Base64 és una codificació: no té clau ni secret, i qualsevol la pot revertir a l’instant. Codificar una contrasenya, una clau d’API o dades personals en Base64 no les protegeix de cap manera. L’autenticació bàsica d’HTTP, per exemple, envia usuari:contrasenya en Base64, i per això només s’ha d’usar sobre HTTPS. Si necessites confidencialitat, fes servir un xifratge de debò (com AES) o un hash de contrasenya (com Argon2 o bcrypt), no pas Base64.

Privadesa

Tota la codificació i descodificació es fa localment al teu navegador amb JavaScript. El text que introdueixes no s’envia mai a cap servidor, ni es desa ni es registra, de manera que pots inspeccionar amb tota seguretat testimonis o valors de configuració. Aquesta eina només treballa amb text; no accepta la pujada de fitxers.

Preguntes freqüents

Per què el text descodificat sembla una sèrie de símbols aleatoris?

Probablement la cadena Base64 representa dades binàries, com una imatge, un fitxer comprimit o contingut xifrat, i no pas text. Descodificar-la produeix bytes vàlids, però no són text UTF-8 amb sentit. També pot passar si el text original es va codificar amb un joc de caràcters diferent d’UTF-8.

Per què l'eina diu que el meu Base64 no és vàlid?

Un Base64 vàlid només conté els 64 caràcters permesos més el farciment = opcional, i la seva longitud ha d’encaixar amb l’agrupació de 4 caràcters. Les causes habituals són caràcters sobrants copiats per error, una cadena truncada o una cadena base64url (amb - i _) descodificada sense tenir activada l’opció segura per a URL.

Puc codificar imatges o altres fitxers?

No. Aquesta eina està pensada només per a text. Per incrustar una imatge en HTML o CSS necessitaries una eina que llegeixi els bytes en brut del fitxer i produeixi una URL de dades.

És segur Base64 per desar contrasenyes?

No. Qualsevol pot descodificar Base64 en una fracció de segon. Les contrasenyes s’han de desar amb un algorisme de hash lent i dedicat, com Argon2, scrypt o bcrypt.

Quina diferència hi ha entre Base64 amb farciment i sense?

El farciment amb = només fa que la longitud de la sortida sigui múltiple de quatre; no aporta cap informació. La majoria de descodificadors poden reconstruir les dades sense ell. Base64url sol ometre el farciment perquè = és un caràcter reservat en les URL.