Hoja de referencia para codificar y decodificar Base64: ejemplos de comandos para Windows, Linux y Mac.
Codificar y decodificar archivos a Base64 en Windows, Linux y Mac.
Esta hoja de trucos muestra cómo codificar y decodificar archivos y cadenas a Base64 desde la línea de comandos en Windows, Linux y macOS: no se requieren herramientas adicionales.

Esta guía forma parte de Herramientas para desarrolladores: La guía completa de flujos de trabajo de desarrollo modernos.
Base64 convierte datos binarios en texto ASCII utilizando 64 caracteres (A–Z, a–z, 0–9, +, /). Se utiliza ampliamente para codificar credenciales en HTTP Basic Auth, cargas útiles de JWT (consulta Decodificar e imprimir token JWT), secretos de Kubernetes, URIs de datos en HTML/CSS y la incrustación de datos binarios en JSON o variables de entorno. El uso de la línea de comandos mantiene los datos sensibles de forma local y permite la automatización mediante scripts en flujos de CI/CD.
Codificación y decodificación Base64 en Windows
Windows no incluye un comando base64 dedicado, pero puedes utilizar herramientas integradas.
Usando Command Prompt con Certutil
-
Abre Command Prompt.
-
Codifica un archivo a Base64:
certutil -encode input.bin output.b64Reemplaza
input.bincon la ruta de tu archivo youtput.b64con el nombre de archivo de salida deseado. -
Para imprimir Base64 en la consola sin guardar un archivo temporal:
certutil -encode input.bin tmp.b64 && findstr /v /c:- tmp.b64 && del tmp.b64findstr /v /c:-elimina las líneas-----BEGIN CERTIFICATE-----y-----END CERTIFICATE-----que añade certutil.
Decodificar Base64 en Windows (Certutil)
certutil -decode encoded.b64 decoded.bin
Usar PowerShell para codificar y decodificar
Codificar un archivo:
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\file.bin"))
Codificar una cadena (UTF-8):
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("Hello, World!"))
# Salida: SGVsbG8sIFdvcmxkIQ==
Decodificar Base64 a cadena:
[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("SGVsbG8sIFdvcmxkIQ=="))
# Salida: Hello, World!
Decodificar Base64 a archivo:
[System.IO.File]::WriteAllBytes("decoded.bin", [Convert]::FromBase64String((Get-Content encoded.b64 -Raw)))
Estos métodos funcionan sin instalar software adicional. Para más automatización de shell, consulta la Hoja de trucos de PowerShell.
Codificación y decodificación Base64 en Linux
El comando base64 viene preinstalado en la mayoría de las distribuciones de Linux (GNU coreutils).
Sintaxis básica
base64 [OPCIONES] [ARCHIVO]
Sin archivo o cuando el archivo es -, lee desde la entrada estándar.
Codificar un archivo a Base64
base64 input_file > output_file
Ejemplo:
base64 myfile.txt > encoded.txt
Para imprimir el contenido codificado en el terminal:
base64 myfile.txt
Codificar una cadena a Base64
echo -n "Hello, World!" | base64
# Salida: SGVsbG8sIFdvcmxkIQ==
Usa -n con echo para evitar un salto de línea final. Para decodificar cadenas en JWT, consulta Decodificar e imprimir token JWT.
Desactivar el ajuste de línea (-w 0)
Por defecto, base64 envuelve la salida cada 76 caracteres. Para JSON, variables de entorno, URLs o uso de Terraform base64encode, desactiva el ajuste de línea:
base64 -w 0 input_file > output_file
Decodificar Base64 en Linux
base64 -d encoded_file > decoded_file
# o
base64 --decode encoded_file > decoded_file
Ejemplo:
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d
# Salida: Hello, World!
Alternativa: OpenSSL
echo -n "data" | openssl base64 -e
echo "ZGF0YQ==" | openssl base64 -d
Para más flujos de trabajo de línea de comandos, la Hoja de trucos de Bash cubre el uso de tuberías (pipes) y scripting.
Codificación y decodificación Base64 en macOS
macOS incluye un comando base64 similar al de Linux, pero requiere la bandera -i para la entrada de archivos.
Codificar un archivo a Base64
base64 -i input_file > output_file
Ejemplo:
base64 -i myfile.txt > encoded.txt
Para imprimir en el terminal:
base64 -i myfile.txt
Codificar y copiar al portapapeles
base64 -i input_file | pbcopy
Decodificar Base64 en Mac
base64 -D -i encoded_file > decoded_file
La bandera -D habilita el modo de decodificación; -i especifica el archivo de entrada. Estos comandos funcionan en todas las versiones modernas de macOS a partir de la 10.7.
Referencia del comando base64 de Linux
Salida completa de ayuda para la herramienta base64 de GNU:
$ base64 --help
Uso: base64 [OPCIÓN]... [ARCHIVO]
Codificar o decodificar ARCHIVO, o entrada estándar, a salida estándar.
Sin ARCHIVO, o cuando ARCHIVO es -, leer la entrada estándar.
Los argumentos obligatorios para las opciones largas también son obligatorios para las opciones cortas.
-d, --decode decodificar datos
-i, --ignore-garbage al decodificar, ignorar caracteres no alfabéticos
-w, --wrap=COLS envolver líneas codificadas después de COLS caracteres (por defecto 76).
Usa 0 para desactivar el ajuste de línea
--help mostrar esta ayuda y salir
--version mostrar información de versión y salir
Los datos se codifican como se describe para el alfabeto base64 en RFC 4648.
Al decodificar, la entrada puede contener saltos de línea además de los bytes del
alfabeto base64 formal. Usa --ignore-garbage para intentar recuperar
cualquier otro byte no alfabético en el flujo codificado.
...
Casos de uso comunes
| Caso de uso | Comando / enfoque |
|---|---|
| Encabezado/carga útil de JWT | Decodificar con base64 -d o jq — consulta Decodificar e imprimir token JWT |
| HTTP Basic Auth | echo -n "usuario:contraseña" | base64 -w 0 para Authorization: Basic <resultado> |
| Secreto de Kubernetes | kubectl create secret generic mysecret --from-literal=key=$(base64 -w 0 file.bin) |
| cURL con Basic Auth | Usa -u usuario:contraseña o -H "Authorization: Basic $(echo -n usuario:contraseña | base64 -w 0)" — consulta Hoja de trucos de cURL |
| URI de datos en HTML | data:image/png;base64,$(base64 -w 0 image.png) |