javascript

Codificar y decodificar base64 en JavaScript

Introducción

Base64 es un sistema de codificación que convierte cualquier dato a una representación que puede ser formada por los caracteres ASCII (los cuales son 64).

Veamos cómo podemos trabajar con base64 en JavaScript

JavaScript y Base64: btoa y atob

No necesitamos instalar un paquete o incluir un script, las funciones ya vienen incluidas nativamente. Eso sí, vienen en el navegador pero me parece que no están disponibles con Node.JS del lado del servidor.

Convertir a base64 en JavaScript

De esto se encarga la función btoa. Quiere decir “Binary to ascii” y bueno, convierte datos binarios o cualquier tipo de dato a una representación imprimible.

Recibe una cadena de datos binarios y devuelve igualmente una cadena, pero codificada.

Su uso es realmente sencillo:

let nombre = "parzibyte.me/blog";
let codificado = btoa(nombre);
console.log(codificado);

Lo ejecutamos y esta es la salida:

Convertir a base64 en JSConvertir a base64 en JS
Convertir a base64 en JS

Claro que no podemos únicamente convertir cadenas, de hecho podemos codificar, por ejemplo, una foto como vimos en este tutorial para tomar una foto con la webcam desde JavaScript.

Decodificar base64 en JavaScript

Ahora entra la función atob, que quiere decir “ASCII to binary”. Recibe una cadena que está codificada con base64 y devuelve los datos binarios.

Probemos con la cadena “cGFyemlieXRlLm1lL2Jsb2c=”:

let cadena = "cGFyemlieXRlLm1lL2Jsb2c=";
let decodificado = atob(cadena);
console.log(decodificado);

Este es el resultado:

Decodificar base64 en JavaScript

Conclusión

Cabe mencionar que esta codificación no es segura, es decir, no es un método de encriptación o hasheo.

Tampoco comprime datos, de hecho los hace más largos.

Base64 funciona bien para representar una  URL, por ejemplo para mostrar una imagen o PDF directamente en un enlace.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Resetear GOOJPRT PT-210 MTP-II (Impresora térmica)

El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…

1 semana hace

Proxy Android para impresora térmica ESC POS

Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…

1 semana hace

Android – Servidor web con servicio en segundo plano

En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…

1 semana hace

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

1 mes hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

2 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

2 meses hace