Cómo convertir Base64 a texto
- Pega la cadena Base64 en el cuadro Entrada · Base64. Los espacios, los saltos de línea y las comillas alrededor no son problema.
- Lee el texto en Salida · texto. La línea de estado bajo la herramienta indica si la entrada era Base64 válido, cuántos bytes contenía y a qué se parece el contenido.
- Si la salida muestra
�o letras raras, cambia el Juego de caracteres. Detección automática busca una marca de orden de bytes, UTF-8 y UTF-16. - Copia el texto con Copiar salida o guárdalo con Descargar.
El sentido contrario es Texto a Base64.
Cómo saber si una cadena es Base64
Una cadena Base64 usa solo 64 caracteres más = como relleno. El Base64 estándar tiene + y /; la variante URL-safe usa - y _ en su lugar. Las cadenas con relleno tienen una longitud divisible entre 4, y los signos = solo pueden ir al final.
Esas reglas son necesarias, pero no suficientes. Muchas palabras normales las cumplen: Test es Base64 válido y se decodifica en los tres bytes 4D EB 2D, que no significan nada. La comprobación práctica es decodificar la cadena y ver si sale algo con sentido. Cuando necesitas algo más que un sí o un no, el validador Base64 muestra qué regla de caracteres, longitud o relleno incumple una cadena y puntúa la probabilidad de que sea Base64.
Ejemplos
| Cadena Base64 | Texto | Nota |
|---|---|---|
VGhhbmsgeW91IQ== | Thank you! | ASCII simple |
SGVsbG8sIFfDtnJsZA== | Hello, Wörld | ö ocupa dos bytes en UTF-8 |
5L2g5aW9 | 你好 | Seis bytes, tres por carácter |
0J/RgNC40LLQtdGC | Привет | Cirílico en UTF-8 |
QmFzZTY0IGlzIG5vdCBlbmNyeXB0aW9uLg== | Base64 is not encryption. | Cualquiera puede leerlo |
dXNlcm5hbWU6c2VjcmV0 | username:secret | El formato de un encabezado HTTP Basic auth |
Como muestra la última fila, cualquiera que vea un encabezado Authorization: Basic puede leer la contraseña que contiene. El decodificador Basic Auth separa ese encabezado en usuario y contraseña, y codificación frente a cifrado explica por qué lo que de verdad lo mantiene privado es HTTPS.
De bytes a cadena de texto
Decodificar Base64 te da bytes. Sacar una cadena de ellos es un segundo paso que necesita un juego de caracteres, y en ese paso nacen la mayoría de los problemas de «texto incorrecto». La mayoría de los lenguajes hacen explícitos los dos pasos:
import base64
raw = base64.b64decode("SGVsbG8sIFfDtnJsZA==")
raw # b'Hello, W\xc3\xb6rld'
raw.decode("utf-8") # 'Hello, Wörld'
raw.decode("latin-1") # 'Hello, Wörld'
En JavaScript, un TextDecoder con fatal: true lanza un TypeError en lugar de insertar � sin avisar, algo útil cuando prefieres que falle antes que guardar texto roto:
const bytes = Uint8Array.from(atob("Y2Fm6Q=="), c => c.charCodeAt(0));
new TextDecoder("utf-8", { fatal: true }).decode(bytes);
// TypeError: the bytes are not valid UTF-8
new TextDecoder("windows-1252").decode(bytes); // "café"
Hay más patrones en las páginas de Python y JavaScript.
Cuando la salida no es texto legible
- Casi todo símbolos con alguna palabra legible. La cadena contiene un archivo. Mira Parece en la línea de estado y ábrelo en Base64 a archivo, que lo previsualiza y lo guarda.
- Letras separadas por huecos. El texto es UTF-16. Pon Juego de caracteres en UTF-16LE.
- Texto legible, pero
éaparece comoé. El texto se decodificó mal en algún punto antes de codificarlo. El Base64 está bien; los datos de origen, no. - La salida vuelve a ser Base64. Se codificó dos veces. Copia la salida, pégala como entrada y decodifica otra vez.
- Bytes de aspecto aleatorio y ningún formato detectado. Probablemente los datos están cifrados o comprimidos. La decodificación Base64 es solo la primera capa; para datos gzip o zlib prueba el decodificador Base64 gzip.
Preguntas frecuentes
¿Qué es una cadena Base64?
Un texto formado solo por los caracteres A–Z, a–z, 0–9, + y /, que a menudo termina en = o ==. Representa bytes, que pueden ser texto, una imagen o cualquier otro archivo, escritos de forma que sobrevivan a sistemas que solo manejan caracteres simples.
¿Cómo sé qué contiene una cadena Base64 antes de decodificarla?
Los primeros caracteres suelen delatarlo: eyJ es JSON, PD94bWwg es XML, iVBORw0KGgo es un PNG y JVBERi0 es un PDF. Tras decodificar, la línea de estado indica el formato detectado. Consulta prefijos Base64 habituales.
¿Cómo convierto Base64 a string en Python?
base64.b64decode(s).decode("utf-8"). La primera llamada devuelve bytes; .decode() los convierte en un str con el juego de caracteres que indiques.
¿Por qué el texto decodificado es otra cadena Base64?
El valor se codificó dos veces, algo que ocurre cuando dos capas de un sistema lo codifican cada una. Pega la salida de nuevo en la entrada y vuelve a decodificar.