logo
GeekFormat

Codificació Base64

Text d'entrada
0 caràcters

Eina gratuïta de codificació i descodificació Base64 en línia, compatible amb jocs de caràcters UTF-8/ASCII/ISO-8859-1, tres variants: Standard, URL-Safe i MIME. Mostra la taxa d'expansió de volum en temps real, el salt de línia MIME compleix l'estàndard RFC 2045.

Relacionats

Casos d'ús

  • Depuració JWT: descodifiqueu els segments header i payload del JWT (format Base64URL) per veure el contingut de les declaracions del Token
  • Basic Auth: codifiqueu username:password com a credencials d'autenticació HTTP Basic
  • Desenvolupament OAuth: genereu code_verifier per a escenaris PKCE o verifiqueu code_challenge
  • Depuració API: codifiqueu dades JSON o descodifiqueu camps Base64 retornats per l'API
  • Incrustació d'imatges Data URI: convertiu icones petites al format data:image/...;base64,... per incrustar en CSS/HTML
  • Codificació d'adjunts de correu: utilitzeu el format MIME Base64 per codificar adjunts binaris de correu

Característiques

  • Canvi entre Encode/Decode amb un clic: canvieu lliurement entre els modes de codificació i descodificació, la sortida es converteix directament en entrada per permetre processament cíclic
  • Suport per a tres jocs de caràcters: UTF-8 (xinès/japonès/emoji), ASCII, ISO-8859-1, cobertura professional per a múltiples escenaris
  • Sortida de tres variants: Standard (estàndard), URL-Safe (segura per JWT/OAuth/PKCE), MIME (salt de línia de 76 caràcters segons RFC 2045)
  • Estadístiques de volum en temps real: mostra el nombre de caràcters d'entrada/sortida i la taxa d'expansió en temps real (Base64 augmenta el volum aproximadament un 33%)
  • Missatges d'error amigables: quan els caràcters superen el rang, mostra informació detallada de l'error en lloc d'un simple avís
  • Línia divisòria arrossegable: a l'ordinador podeu ajustar la proporció de les àrees d'edició esquerra i dreta per centrar-vos en la tasca actual
  • Pestanyes independents per a mòbils: els usuaris de telèfon/tableta canvien independentment entre l'àrea d'entrada i la de sortida, amb una experiència fluida

Com usar-ho

  1. Seleccioneu el mode: feu clic a Encode (codificar) o Decode (descodificar) per canviar la direcció de processament
  2. Seleccioneu la variant: Standard (estàndard), URL-Safe (JWT/OAuth), MIME (format de correu amb salt de 76 caràcters)
  3. Introduïu el contingut: enganxeu text o cadena Base64, es processa automàticament en temps real
  4. Vegeu les estadístiques: a la part inferior es mostren el nombre de caràcters i la taxa d'expansió de volum (la codificació augmenta el volum aproximadament un 33%)
  5. Copieu el resultat: copieu amb un clic la cadena Base64 o el text descodificat

Preguntes freqients

La codificació Base64 és el mateix que el xifratge?

No. Base64 només converteix text en una altra representació reversible, qualsevol pot descodificar-lo de nou a l'original. Si es tracta de dades sensibles (contrasenyes, tokens), utilitzeu un esquema de xifratge real com AES. Base64 només és adequat per a la conversió de formats de dades, facilitant la transmissió de dades binàries per sistemes de text.

Eina de xifratge AES

Quant augmenta el volum després de la codificació Base64?

La codificació Base64 augmenta el volum de les dades originals aproximadament un 33%. Això es deu al fet que cada 3 bytes (24 bits) es codifiquen en 4 caràcters Base64. Per exemple, 100 bytes de text es converteixen en uns 133 bytes després de la codificació. La part inferior de l'eina mostra la taxa d'expansió en temps real per ajudar-vos a avaluar la mida de les dades. Exemple: `Hello` → `SGVsbG8=` (volum +33%).

Eina d'estadístiques Base64

Quina diferència hi ha entre les tres variants Standard, URL-Safe i MIME?

Standard és el Base64 estàndard, utilitza els caràcters A-Z, a-z, 0-9, +, /. URL-Safe reemplaça +/ per -_, adequat per a paràmetres URL i tokens JWT. MIME insereix salts de línia cada 76 caràcters, compleix l'estàndard de transmissió de correu RFC 2045, adequat per a adjunts de correu i text de diverses línies.

URL-Safe Base64MIME Base64

Com descodificar el header o payload d'un JWT?

JWT utilitza la codificació Base64URL (variant URL-Safe). Després de seleccionar el mode URL-Safe, enganxeu directament el primer segment (header) o el segon segment (payload) del JWT per descodificar-lo. Tingueu en compte que el tercer segment del JWT és una signatura i no s'ha de descodificar ni verificar aquí.

Eina JWT

Què és el Padding (emplenat) de Base64?

La longitud del resultat de la codificació Base64 ha de ser un múltiple de 4. Quan la longitud d'entrada no és un múltiple de 3, s'emplena amb el caràcter =. La variant URL-Safe no utilitza padding. L'eina gestiona automàticament el padding i també elimina automàticament els caràcters = en descodificar.

Eina de Padding Base64

Per què btoa i atob en JavaScript no admeten xinès?

btoa i atob són APIs natives del navegador, operen amb el joc de caràcters Latin-1 (ISO-8859-1), on cada caràcter ocupa 1 byte. Els caràcters xinesos ocupen 3 bytes en UTF-8, passar-los directament provocarà un error. La solució és utilitzar primer encodeURIComponent per convertir el xinès al format %xx de seqüències de bytes UTF-8, després utilitzar unescape per convertir-lo a una cadena Latin-1, i finalment codificar amb btoa.

Què és l'Esquema Data URI? Com incrustar imatges amb Base64?

Data URI és un format URI que permet incrustar dades directament en un URL, amb la sintaxi: `data:[<mediatype>][;base64],<data>`. Per exemple `data:image/png;base64,iVBORw0KGgo...`. S'utilitza sovint per incrustar icones petites, imatges de fons CSS, etc., per reduir el nombre de sol·licituds HTTP. Però Base64 augmenta el volum un 33%, per tant només és adequat per a fitxers petits; els fitxers grans encara haurien d'utilitzar URL normals.

Eina Data URIBase64 a imatge

Què és la codificació Base64?

Base64 és un esquema de codificació de binari a text basat en 64 caràcters ASCII imprimibles, definit per primera vegada per RFC 2045 (estàndard MIME). Base64 converteix cada 3 bytes (24 bits) en 4 caràcters Base64 (A-Z, a-z, 0-9, +, /), permetent que les dades binàries es transmetin de forma segura per sistemes que només admeten text, com ara capçaleres HTTP, càrregues útils JSON, documents XML o paràmetres de consulta URL.

**Base64 no és xifratge**, només proporciona conversió de format de dades, qualsevol pot descodificar-lo fàcilment. Si necessiteu protegir dades sensibles, utilitzeu un esquema de xifratge real com AES. Els usos típics de Base64 inclouen: HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), segments header i payload de tokens JWT (format Base64URL), Data URI (`data:image/png;base64,...`), codificació MIME d'adjunts de correu, etc.

**URL-Safe Base64** (RFC 4648 §5) reemplaça +/ del Base64 estàndard per -_ i normalment omet el caràcter = de padding. Això permet que el resultat de la codificació aparegui de forma segura en URL, rutes de fitxers o camps JSON. Els tokens JWT, el code_verifier d'OAuth PKCE i AWS Signature V4 utilitzen la codificació URL-Safe Base64.

**El salt de línia MIME** és l'estàndard RFC 2045 que especifica que cada línia no ha de superar els 76 caràcters. Quan el contingut Base64 s'utilitza en correus electrònics o en alguns escenaris que requereixen visualització per línies, la variant MIME insereix automàticament salts de línia (`\n`) cada 76 caràcters. Aquest és el format estàndard per a la transmissió d'adjunts de correu electrònic.

L'eina utilitza les **APIs natives btoa/atob** del navegador, juntament amb una lògica de processament segura per a UTF-8, per garantir que els caràcters multibyte com ara xinès i emoji japonès es codifiquin correctament. Tots els càlculs es realitzen localment, les dades no s'envien a cap servidor. Si obriu el panell de xarxa de les eines de desenvolupador del navegador, podeu comprovar que no hi ha cap sol·licitud externa durant tot el procés.

术语表

RFC 4648
Estàndard oficial de codificació Base16/Base32/Base64 publicat per l'IETF, defineix dos alfabets: Base64 estàndard i Base64 URL-Safe, així com regles per a padding, salts de línia i processament de caràcters no pertanyents a l'alfabet. És l'estàndard de facto actual per a la codificació Base64, substituint l'antic RFC 3548.Eina URL-Safe Base64Eina de Padding Base64
RFC 2045 (MIME)
Estàndard d'Extensions de Correu Internet Multiusos (MIME), que va utilitzar per primera vegada Base64 com a mètode de codificació de transmissió per a contingut de correu. Estableix que la codificació Base64 no ha de superar els 76 caràcters per línia i ha de finalitzar amb CRLF, és a dir, la variant MIME Base64.Eina MIME Base64
Base64URL (URL-Safe Base64)
Variant segura per a URL definida per RFC 4648 §5. Reemplaça + per - i / per _ del Base64 estàndard, i normalment omet el caràcter = de padding. S'utilitza àmpliament en tokens JWT, OAuth PKCE, paràmetres URL, noms de fitxers i altres escenaris.Eina URL-Safe Base64Eina JWT
MIME Base64
Variant de Base64 que compleix l'estàndard RFC 2045, insereix un salt de línia (CRLF) cada 76 caràcters. S'utilitza principalment per a la transmissió d'adjunts de correu electrònic, a causa de les limitacions de longitud de línia en els primers protocols SMTP.Eina MIME Base64
Padding (emplenat)
La longitud del resultat de la codificació Base64 ha de ser un múltiple de 4. Quan el nombre de bytes d'entrada no és un múltiple de 3, s'emplena el final amb el caràcter =. El Base64 estàndard utilitza padding, Base64URL normalment l'omet.Eina de Padding Base64
Alfabet Base64
Conjunt de 64 caràcters utilitzats per la codificació Base64. L'alfabet Base64 estàndard és: A-Z (26), a-z (26), 0-9 (10), +, /, en total 64 caràcters, més el caràcter d'emplenat =.
btoa / atob
APIs natives del navegador per a codificació/descodificació Base64. btoa (binary to ASCII) s'utilitza per codificar, atob (ASCII to binary) per descodificar. Tingueu en compte que aquestes APIs només admeten el joc de caràcters Latin-1; per processar xinès cal utilitzar conversió UTF-8.
Esquema Data URI
Un format URI que permet incrustar fitxers petits directament en un URL, amb el format data:[<mediatype>][;base64],<data>. S'utilitza sovint per incrustar icones petites, imatges de fons CSS, etc., per reduir les sol·licituds HTTP.Eina Data URIBase64 a imatge
HTTP Basic Authentication
Un mètode d'autenticació en el protocol HTTP, que connecta el nom d'usuari i la contrasenya amb dos punts i els codifica en Base64, col·locant-los a la capçalera Authorization per a la transmissió. El format és: Authorization: Basic <base64(nomdusuari:contrasenya)>.Constructor de capçaleres Auth
Taxa d'expansió Base64
Proporció d'augment del volum de dades després de la codificació Base64. Cada 3 bytes (24 bits) es codifiquen en 4 caràcters Base64, per tant el volum augmenta aproximadament un 33% (4/3 ≈ 1.333). Amb padding, la taxa d'expansió serà lleugerament superior.

Comparació de les tres variants de Base64

CaracterísticaStandardURL-SafeMIME
Caràcters especials+ /- _+ /
Padding (=)S'utilitzaNormalment s'ometS'utilitza
Salts de líniaCapCapSalt cada 76 caràcters
EstàndardRFC 4648 §4RFC 4648 §5RFC 2045
Casos típicsData URI, codificació generalJWT, paràmetres URL, noms de fitxerAdjunts de correu, transmissió SMTP

Taula comparativa de codificacions de la sèrie Base

CodificacióNombre de caràctersCaracterístiques del joc de caràctersExpansió de volumÚs típic
Base16 (Hex)160-9, A-F100%Depuració, visualització de hash
Base3232A-Z, 2-7 (majúscules sense confusió)60%DNS, claus TOTP, codis QR
Base5858Sense caràcters fàcils de confondre 0/O/I/l38%Adreces Bitcoin, criptomonedes
Base6262A-Z, a-z, 0-934%Enllaços curts URL, codificació d'ID
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT (variant URL-Safe)

Code Examples

Codificació Base64 en JavaScript (amb suport per xinès UTF-8)

// 编码(支持 UTF-8 中文)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// 解码(支持 UTF-8 中文)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe 编码(用于 JWT / OAuth)
function b64UrlEncode(str) {
  return btoa(unescape(encodeURIComponent(str)))
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/, '');
}

console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界

Codificació Base64 en Python

import base64

# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())  # SGVsbG8g5LiW55WM(无 padding 需手动去除)

# 去除 padding(JWT 标准做法)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)

Codificació Base64 en Java

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        String text = "Hello 世界";

        // Standard 编码
        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded); // SGVsbG8g5LiW55WM

        // Standard 解码
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // URL-Safe 编码(用于 JWT / URL)
        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        // MIME 编码(76字符换行)
        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

Authoritative References