Descodificació Base64
Eina gratuïta de descodificació Base64 en línia per restaurar cadenes Base64 al text original. Compatible amb diversos jocs de caràcters, ideal per revisar APIs i restaurar registres.
Relacionats
Què és la descodificació Base64?
La descodificació Base64 és el procés invers de la codificació Base64: restaura una cadena Base64 (com ara SGVsbG8=) al text o a les dades binàries originals. Base64 és un mètode de codificació que representa dades binàries amb 64 caràcters ASCII imprimibles (A-Z, a-z, 0-9, +, /), definit a l'estàndard RFC 4648.
**Usos habituals de la descodificació:** la codificació Base64 s'utilitza àmpliament en capçaleres HTTP Basic Authentication, segments payload de tokens JWT, camps de respostes API, Data URI (com `data:image/png;base64,...`), codificació MIME d'adjunts de correu i emmagatzematge de camps BLOB en bases de dades. Descodificar aquest contingut és una tasca habitual de desenvolupament i depuració.
**Passos clau en descodificar:** en la descodificació Base64 cal tractar correctament: 1) el joc de caràcters (UTF-8 per a caràcters multibyte com el xinès, ASCII per a text només en anglès); 2) el farciment Padding (`=`), ja que la longitud ha de ser múltiple de 4; 3) la variant URL-safe (`-` i `_` substitueixen `+` i `/`); 4) salts de línia i espais (el Base64 estàndard no en té, mentre que la variant MIME introdueix un salt de línia cada 76 caràcters).
**Suport natiu del navegador:** el navegador ofereix la funció `atob()` per descodificar Base64, però només admet el joc de caràcters Latin-1 (ISO-8859-1). Per processar caràcters multibyte com el xinès cal convertir primer la seqüència de bytes UTF-8 amb `TextDecoder('utf-8')`. Aquesta eina gestiona automàticament aquests detalls i permet descodificar UTF-8 sense conversions manuals.
**Privadesa amb processament local:** totes les operacions de descodificació es fan dins del navegador. La cadena Base64 introduïda no s'envia a cap servidor, de manera que es pot utilitzar amb tranquil·litat per descodificar tokens sensibles en respostes API o dades d'usuari en registres.
Casos d'ús
- Descodificar camps Base64 retornats per una API per veure el contingut original
- Restaurar dades codificades en Base64 dins de registres
- Recuperar valors Base64 dins de fitxers de configuració
- Diagnosticar errors de descodificació Base64 com manca de padding o caràcters no vàlids
- Descodificar els segments header i payload de JWT per consultar informació d'usuari
- Descodificar credencials HTTP Basic Authentication per veure usuari i contrasenya
- Restaurar dades d'imatges o recursos dins d'un Data URI Scheme
Com usar-ho
- Enganxa la cadena Base64 que vols descodificar
- Tria el joc de caràcters (UTF-8/ASCII/ISO-8859-1)
- L'eina descodifica automàticament el Base64 i mostra el resultat
- Copia el resultat descodificat per continuar amb la depuració o la documentació
Característiques
- Conversió bidireccional en temps real: l'entrada es descodifica immediatament amb un retard antirebot de 300 ms, sense necessitat d'executar res manualment
- Compatibilitat amb múltiples jocs de caràcters: UTF-8, ASCII i ISO-8859-1 per cobrir escenaris en català, anglès i multilingües
- Compatibilitat amb URL-safe Base64: gestiona automàticament la substitució de `-` i `_` i admet formats sense Padding
- Detecció de caràcters no vàlids: quan la descodificació falla, mostra la posició concreta de l'error per localitzar el problema més ràpid
- Copiar i descarregar amb un clic: permet copiar el resultat descodificat al porta-retalls o descarregar-lo com a fitxer de text `.txt`
- Gestió automàtica del Padding: completa o elimina automàticament els caràcters `=` sense ajustar manualment la longitud
- Compatibilitat amb la variant MIME: reconeix i processa Base64 MIME amb salts de línia cada 76 caràcters, habitual en adjunts de correu
Exemples de codi
JavaScript: descodificació amb `atob()` al navegador (només Latin-1)
javascriptFes servir l'API nativa del navegador per descodificar Base64 només en anglès. Per a UTF-8 cal `TextDecoder`.
// Standard Base64 decode (plain English / Latin-1)
function b64Decode(str) {
try {
return atob(str);
} catch (e) {
return 'Decode failed: ' + e.message;
}
}
console.log(b64Decode('SGVsbG8gV29ybGQ=')); // "Hello World"
// UTF-8 decode (recommended)
function b64DecodeUtf8(str) {
const binary = atob(str);
const bytes = new Uint8Array(binary.length);
for (let i = 0; i < binary.length; i++) {
bytes[i] = binary.charCodeAt(i);
}
return new TextDecoder('utf-8').decode(bytes);
}
console.log(b64DecodeUtf8('5LiW55WM')); // UTF-8 textPython: descodificació amb la llibreria `base64` (inclou URL-Safe)
pythonLa llibreria estàndard `base64` de Python admet tant el mode Standard com URL-Safe.
import base64
# Standard decode
encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)
# URL-Safe decode
url_encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.urlsafe_b64decode(url_encoded + '=' * (4 - len(url_encoded) % 4))
print(decoded.decode('utf-8'))
# MIME decode (after removing line breaks)
mime_encoded = 'SGVs\nbG8g\nV29y\nbGQ='
decoded = base64.b64decode(mime_encoded.replace('\n', '')).decode('utf-8')
print(decoded)
# Ignore invalid characters automatically
import re
cleaned = re.sub(r'[^A-Za-z0-9+/=]', '', encoded)
decoded = base64.b64decode(cleaned).decode('utf-8')
print(decoded)Java: descodificació amb `java.util.Base64` (diverses variants)
javaLa llibreria estàndard de Java ofereix suport complet per a Base64 RFC 4648, URL-Safe i MIME.
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
String encoded = "SGVsbG8g5LiW55WM";
// Standard decode
byte[] decoded = Base64.getDecoder().decode(encoded);
System.out.println(new String(decoded, StandardCharsets.UTF_8));
// URL-Safe decode
byte[] urlDecoded = Base64.getUrlDecoder().decode(encoded);
System.out.println(new String(urlDecoded, StandardCharsets.UTF_8));
// MIME decode (handles line breaks automatically)
String mime = "SGVs\nbG8g\nV29y\nbGQ=";
byte[] mimeDecoded = Base64.getMimeDecoder().decode(mime);
System.out.println(new String(mimeDecoded, StandardCharsets.UTF_8));
// Error handling
try {
Base64.getDecoder().decode("invalid@base64");
} catch (IllegalArgumentException e) {
System.err.println("Decode failed: " + e.getMessage());
}
}
}Preguntes freqients
Per què en descodificar Base64 apareix InvalidCharacterError?
Les causes més habituals són: espais, salts de línia o cometes barrejats a l'entrada, quantitat incorrecta de Padding (`=`) o ús de la variant URL-safe (`-` i `_` en lloc de `+` i `/`). Es recomana netejar la cadena Base64 abans de descodificar-la.
Què faig si el resultat surt amb caràcters il·legibles?
És probable que el joc de caràcters escollit sigui incorrecte. Si el text original era en xinès o altres caràcters multibyte, tria UTF-8. Si és només anglès o dades binàries, prova ASCII o ISO-8859-1.
Quina diferència hi ha entre descodificar URL-safe Base64 i Base64 normal?
URL-safe Base64 utilitza `-` i `_` en lloc de `+` i `/`, i sovint omet el Padding final `=`. Abans de descodificar, cal restaurar `-/_` a `+/` i completar el Padding correcte.
La descodificació Base64 va bé per fer proves d'API?
Sí, molt. Moltes respostes d'API, tokens OAuth, paràmetres de retorn i registres de middleware encapsulen contingut en Base64. Descodificar-lo permet veure directament les dades originals.
Com descodifico el header o el payload d'un JWT?
JWT utilitza Base64URL (variant URL-safe). Enganxa el primer segment (header) o el segon (payload) del JWT i tria el mode URL-safe per descodificar-lo. El tercer segment és la signatura i no s'hauria de validar amb una descodificació independent.
Admet descodificar fitxers grans?
L'eina no imposa un límit explícit de mida, però el rendiment del navegador disminueix amb textos molt grans. Descodificar cadenes Base64 de més de 10 MB pot congelar la pàgina; es recomana fer-ho per fragments o bé utilitzar scripts en Node.js o Python.
Què passa si falta el Padding?
L'eina completa automàticament el Padding (`=`) fins a una longitud múltiple de 4. Com que la variant URL-safe sovint l'omet, l'eina el detecta i el completa de manera intel·ligent.
Descodificar Base64 és desxifrar?
No. Base64 és una codificació reversible, no un xifratge. Qualsevol persona pot descodificar Base64. Si les dades són sensibles, cal usar un sistema d'encriptació real com AES.
El resultat de `atob()` del navegador és igual que el de l'eina?
Per a text només en anglès, sí. Però `atob()` només admet Latin-1 i no pot processar directament text UTF-8 multibyte. Aquesta eina gestiona automàticament la conversió UTF-8, equivalent a combinar `atob()` amb `TextDecoder`.
Es pot exportar el resultat descodificat?
Sí. Es pot copiar al porta-retalls amb un clic o descarregar-lo com a fitxer de text `.txt`. El fitxer descarregat utilitza codificació UTF-8 i es pot obrir amb qualsevol editor de text o amb Excel.
Glossari
- Base64
- Mètode de codificació de binari a text basat en 64 caràcters ASCII imprimibles, definit a RFC 4648. Cada 3 bytes es codifiquen com 4 caràcters, de manera que la mida augmenta aproximadament un 33%.
- atob()
- Funció nativa del navegador per descodificar Base64 (ASCII to Binary). Només admet el joc de caràcters Latin-1; per processar text UTF-8 cal combinar-la amb TextDecoder.
- Padding (farciment)
- La codificació Base64 afegeix caràcters `=` al final per completar una longitud múltiple de 4. En descodificar, el padding normalment s'elimina automàticament. La variant URL-safe sovint l'omet.
- URL-Safe Base64
- Variant segura per a URL definida a RFC 4648 §5, que utilitza `-` i `_` en lloc de `+` i `/` per evitar problemes d'URL. És habitual en JWT i OAuth PKCE.
- MIME Base64
- Variant Base64 definida a RFC 2045 que insereix un salt de línia CRLF cada 76 caràcters. S'utilitza principalment per transmetre adjunts de correu.
- UTF-8
- Codificació Unicode de longitud variable: el xinès ocupa 3 bytes i l'anglès 1 byte. Cal indicar UTF-8 en descodificar Base64 per restaurar correctament caràcters multibyte.
- InvalidCharacterError
- Error que llança `atob()` al navegador quan troba caràcters que no són Base64, com espais, salts de línia o caràcters xinesos. Indica que l'entrada conté caràcters no vàlids.
- Latin-1 (ISO-8859-1)
- Joc de caràcters d'un sol byte que cobreix llengües d'Europa occidental. `atob` i `btoa` del navegador només admeten aquest joc i no poden processar directament UTF-8.
Comparació de les tres variants Base64
Abans de descodificar, identifica el tipus de variant Base64 d'entrada i tria el mode adequat per evitar errors o text malmès.
| Característica | Standard | URL-Safe | MIME |
|---|---|---|---|
| Caràcters especials | + / | - _ | + / |
| Padding (=) | S'utilitza | Normalment s'omet | S'utilitza |
| Salt de línia | No | No | Salt cada 76 caràcters |
| Estàndard | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Escenaris típics | Data URI, codificació general | JWT, paràmetres URL, noms de fitxer | Adjunts de correu, transmissió SMTP |
| Atenció en descodificar | Cal completar el Padding | Substitueix primer -_ per +/ i després descodifica | Elimina els salts de línia abans de descodificar |
Taula de 5 errors habituals en descodificar Base64
Si tens errors en descodificar, fes servir aquesta taula per localitzar-ne la causa ràpidament.
| Tipus d'error | Possible causa | Solució |
|---|---|---|
| InvalidCharacterError | Conté espais, salts de línia o caràcters no Base64 | Neteja la cadena d'entrada o utilitza l'eina Base64 Clean |
| Text malmès després de descodificar | S'ha triat un joc de caràcters incorrecte (per exemple, xinès amb Latin-1) | Canvia a UTF-8 |
| Error en paràmetres URL | S'han utilitzat caràcters URL-safe (`-_`) però s'ha aplicat la descodificació estàndard | Substitueix `-_` per `+/` i descodifica de nou |
| Padding incorrecte | La longitud no és múltiple de 4 | Afegeix `=` fins que la longitud % 4 = 0 |
| Cadena buida | L'entrada només conté espais en blanc o salts de línia | Elimina els espais i torna-la a introduir |
Authoritative References
- Comparació Segura de Text
- Conversió Binària
- Xifrat de César
- Codi Morse
- Codificació Hexadecimal
- Base64 a Vídeo
- Imatge a Base64
- Base64 a imatge
- Text a Base64
- Base64 a Text
- Verificador de hash de fitxer
- Fitxer a Base64
- Base64 a Fitxer
- Àudio a Base64
- Base64 a Àudio
- Xifrar i desxifrar AES
- Xifratge i Desxifrat DES
- Codificador i Descodificador Base32
- Base58 Codificació i descodificació
- Codificació Base64
- Descodificació Base64
- Comparació Base64
- Divisor Base64
- Base64 fusió de múltiples línies
- Formateig Base64
- Validació Base64
- Codificació Base64 per lots
- Descodificació per Lots Base64
- Neteja Base64
- Gestió del padding Base64
- Estadístiques Base64
- Base64 a Hex
- Convertidor Base64 DataURL
- Convertidor Base64-Hex
- Codificació Base85
- Generació i Verificació HMAC
- Derivació PBKDF2
- Hash MD5
- Hash SHA-256
- Hash SHA1
- Hash SHA512
- Decodificador, Verificador i Generador JWT
- Codificació d'Entitats HTML
- Unicode Escape
- Codificació URL
- Base64 URL-Safe
- MIME Base64
- Ofuscació de Java
- Ofuscació JS
- Ofuscació de PHP
- Ofuscació de Python
- Convertidor de Vídeo a Base64