Ad Code

ADS

Criptnets: Cómo Desencriptar un JavaScript Encriptado con Base64 XOR en HTML

Introducción

En el desarrollo web moderno, la protección del código JavaScript se ha vuelto crucial para preservar la propiedad intelectual, dificultar la ingeniería inversa y reforzar la seguridad frente a usuarios maliciosos. Una técnica efectiva es la encriptación del código mediante Base64 combinada con XOR y una clave secreta. Este método, utilizado en herramientas como Codificador JavaScript Base64 XOR Online CRIPTNETS, permite proteger funciones sensibles y luego desencriptarlas dinámicamente en el navegador.

Este artículo muestra paso a paso cómo utilizar esta herramienta para proteger una función JavaScript en un formulario de login básico y cómo integrarla nuevamente en HTML para que se auto-ejecute desencriptándose con una clave al momento de la carga del documento.

Código Original del Login

A continuación, se presenta un formulario HTML de inicio de sesión con validación básica en JavaScript:

<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <title>Login Básico</title> </head> <body> <h2>Iniciar Sesión</h2> <form id="loginForm"> <label>Usuario:</label><br> <input type="text" id="usuario" required><br><br> <label>Contraseña:</label><br> <input type="password" id="password" required><br><br> <button type="submit">Ingresar</button> </form> <p id="mensaje"></p> <script type="text/javascript"> document.getElementById('loginForm').addEventListener('submit', function(e) { e.preventDefault(); const usuario = document.getElementById('usuario').value; const password = document.getElementById('password').value; // Usuario y contraseña definidos (para pruebas) const usuarioValido = "admin"; const passwordValida = "1234"; if (usuario === usuarioValido && password === passwordValida) { document.getElementById('mensaje').innerText = "¡Bienvenido!"; document.getElementById('mensaje').style.color = "green"; } else { document.getElementById('mensaje').innerText = "Credenciales incorrectas."; document.getElementById('mensaje').style.color = "red"; } }); </script> </body> </html>

Paso 1: Encriptar el Código JavaScript

1.  Copia el código dentro de la etiqueta <script>.

2.  Accede a Codificador JavaScript Base64 XOR.

3.  Pega el código en el textarea.

4.  Ingresa una clave secreta, por ejemplo: 123.

5.  Obtén el resultado encriptado y concatena el signo $ seguido de la clave.

Ejemplo final del string ofuscado:

<cadena_codificada_base64_xor>$123

6/Pm2vXs9dyz7O3dCvTs8u3z2wbgDuyxrPTy7PHzDfPX8quwtent6w3b6vLdE/HW2+3z6taxrNfc6fXw26u1p+rc9efd7vPzr+2wp9/Pp6jstdjX6trs9dwN6uro2vTdr7Ge0c6pp+fy9dfdp93W2unX7vOpoqjt9Ofc8u3z27Lq6twM8+306vLdCeEQ67Cq2tfc5tbw9Kuwtdro893soM6pp+fy9dfdp9jo2Nfa9Nbtp6Wp6/Pm2vXs9dyz7O3dCvTs8u3z2wbgDuyxrNjo2Nfa9NbtrLGz3en12u2e0c6pp7Oyp/3W2unX7vOp3qjm9PLd2enW6lnop+zs7fHz7uzy2Kix1+nX5qjZ2d3s6enWrs6pp+fy9dfdp93W2unX7vP75vTw6/Opoqin5uz07vKnoM6pp+fy9dfdp9jo2Nfa9Nbt/en17uzop6WpqZmXmJynoM7Pp6jw7aix2tfc5tbw9KikoqWp2tfc5tbw9Pro8/Ht9KirrajZ5tfW3PPX66ikoqWp1+nW2Nvy2ez75vTw6+mwp9/Pp6ipp+zy6N306vLdtevs2w316vXs9dwH3hHtr6v06vLW5u7srLGz7vLz6tb96uDdp6WpqSkH7u3z3e3z7uzypqae0aipp6jt9Ofc8u3z27Lq6twM8+306vLdCeEQ67Cq8u3z2Onv6quwtdfd3vTstefy8/PXp6WpqevX6u3zqZ/Pp6jkp+312O2p4M6pp6ip6/Pm2vXs9dyz7O3dCvTs8u3z2wbgDuyxrPXs9dfo8e2qrrLw9fLs2fzs39ypoqinCNbs6+3z6PHo8+3Wp/Hz6PPX2e3m2+nWtaae0aipp6jt9Ofc8u3z27Lq6twM8+306vLdCeEQ67Cq8u3z2Onv6quwtdfd3vTstefy8/PXp6Wpqdbs66ae0aip4s7krp8=$123

Paso 2: Insertar el Código Encriptado en el HTML

<textarea id="codigo_encriptado" style="display:none;"> <cadena_codificada_base64_xor>$123 </textarea>

Paso 3: Crear el Desencriptador Automático

Agrega este script al final del HTML:

<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <title>Login Básico</title> </head> <body> <h2>Iniciar Sesión</h2> <form id="loginForm"> <label>Usuario:</label><br> <input type="text" id="usuario" required><br><br> <label>Contraseña:</label><br> <input type="password" id="password" required><br><br> <button type="submit">Ingresar</button> </form> <p id="mensaje"></p> <textarea id="codigo_encriptado" style="display:none;"> 6/Pm2vXs9dyz7O3dCvTs8u3z2wbgDuyxrPTy7PHzDfPX8quwtent6w3b6vLdE/HW2+3z6taxrNfc6fXw26u1p+rc9efd7vPzr+2wp9/Pp6jstdjX6trs9dwN6uro2vTdr7Ge0c6pp+fy9dfdp93W2unX7vOpoqjt9Ofc8u3z27Lq6twM8+306vLdCeEQ67Cq2tfc5tbw9Kuwtdro893soM6pp+fy9dfdp9jo2Nfa9Nbtp6Wp6/Pm2vXs9dyz7O3dCvTs8u3z2wbgDuyxrNjo2Nfa9NbtrLGz3en12u2e0c6pp7Oyp/3W2unX7vOp3qjm9PLd2enW6lnop+zs7fHz7uzy2Kix1+nX5qjZ2d3s6enWrs6pp+fy9dfdp93W2unX7vP75vTw6/Opoqin5uz07vKnoM6pp+fy9dfdp9jo2Nfa9Nbt/en17uzop6WpqZmXmJynoM7Pp6jw7aix2tfc5tbw9KikoqWp2tfc5tbw9Pro8/Ht9KirrajZ5tfW3PPX66ikoqWp1+nW2Nvy2ez75vTw6+mwp9/Pp6ipp+zy6N306vLdtevs2w316vXs9dwH3hHtr6v06vLW5u7srLGz7vLz6tb96uDdp6WpqSkH7u3z3e3z7uzypqae0aipp6jt9Ofc8u3z27Lq6twM8+306vLdCeEQ67Cq8u3z2Onv6quwtdfd3vTstefy8/PXp6WpqevX6u3zqZ/Pp6jkp+312O2p4M6pp6ip6/Pm2vXs9dyz7O3dCvTs8u3z2wbgDuyxrPXs9dfo8e2qrrLw9fLs2fzs39ypoqinCNbs6+3z6PHo8+3Wp/Hz6PPX2e3m2+nWtaae0aipp6jt9Ofc8u3z27Lq6twM8+306vLdCeEQ67Cq8u3z2Onv6quwtdfd3vTstefy8/PXp6Wpqdbs66ae0aip4s7krp8=$123 </textarea> <script> function decodificarJS1(textoCodificado, clave) { if (!textoCodificado || !clave) { console.log("Por favor, completa el texto codificado y la clave."); return; } try { const texto = atob(textoCodificado); let desplazamiento = 0; for (let i = 0; i < clave.length; i++) { desplazamiento += clave.charCodeAt(i); } desplazamiento = desplazamiento % 256; let resultado = ''; for (let i = 0; i < texto.length; i++) { const charCode = texto.charCodeAt(i); const desplazado = (charCode - desplazamiento + 256) % 256; const claveChar = clave.charCodeAt(i % clave.length); const xored = desplazado ^ claveChar; resultado += String.fromCharCode(xored); } return resultado; } catch (e) { console.log("Error al decodificar. Verifica que la clave sea correcta o el formato válido: " + e.message); } } function ejecutarScriptCercaDeTextarea() { const textarea = document.getElementById('codigo_encriptado'); const contenido = textarea.value.trim(); const partes = contenido.split('$'); const base64 = partes[0]; const clave = partes[1] || ''; if (!base64 || !clave) { alert('Código o clave inválidos.'); return; } const codigoDecodificado = decodificarJS1(base64, clave); if (!codigoDecodificado) { return; } try { const script = document.createElement('script'); script.textContent = codigoDecodificado; textarea.insertAdjacentElement('afterend', script); //30 segundos = 30000 milisegundos setTimeout(() => { script.remove(); textarea.innerText = 'Solicita el codigo fuente JavaScript al desarrollador'; }, 9000); } catch (e) { console.error('Error al ejecutar el script:', e); } } window.onload = () => { ejecutarScriptCercaDeTextarea(); }; </script> </body> </html>

Beneficios del Enfoque

Seguridad: Dificulta la lectura del código fuente desde el navegador.

Privacidad del desarrollador: Protege funciones sensibles y lógica de negocio.

Flexibilidad: Se puede integrar con cualquier sistema web en HTML puro.

Conclusión

La encriptación de JavaScript con Base64 y XOR es una medida simple pero eficaz para proteger funciones sensibles en HTML. Usando herramientas como el Codificador de Criptnets, es posible ofuscar código y desencriptarlo en tiempo real con una clave, reforzando así la seguridad del lado cliente.


Cómo Desencriptar un JavaScript Encriptado con Base64 XOR en HTML
Figure 1. Desencriptar un JavaScript Encriptado con Base64 XOR - sybcodex.com


Aviso sobre el contenido

 

Este Blog no se hace responsable del mal uso de la información compartida, todo es presentado solo con fines educativos y de entretenimiento.

 

Es importante señalar que el contenido de este artículo tiene un enfoque informativo y de entretenimiento, por lo que podría contener información que no es verídica. Por esta razón, si tienes la intención de utilizar esta publicación para hacer trabajos académicos o investigaciones, te recomiendo encarecidamente que realices una exhaustiva investigación adicional. Es fundamental que filtres los contenidos y verifiques la información mediante fuentes académicas confiables, como revistas científicas y repositorios de alta credibilidad.

 

El contenido educativo aquí proporcionado no pretende sustituir el asesoramiento, guía o enseñanza proporcionada por profesionales o instituciones especializadas. Cualquier decisión o acción tomada por los lectores o usuarios con base en la información presentada en este contenido es responsabilidad exclusiva de cada individuo.

 

En caso de que se requiera asesoramiento específico o experto en un área particular, se alienta a los usuarios a buscar la orientación de profesionales o expertos cualificados en el campo correspondiente.

 

Si les sale error al ejecutar el código del programa o Query o script compartido puede deberse a factores técnicos de software, tipeo, estructura de código, versión o de librerías desfasadas.

 

Las licencias de software libre y de código abierto permiten a los desarrolladores utilizar y modificar el código fuente de un proyecto, lo que puede fomentar la innovación y el avance tecnológico.

 

El código, script, software y Query compartido en este post o publicación está bajo licencia de software libre, y si lo llegan a compartir opcionalmente pueden poner el nombre y la web del desarrollador <Sybcodex/>.

 

Referencias

 

DALL·E (openai, 2025). Ilustración de este artículo. [Figure 1]. Generado en https://chatgpt.com/

Criptnets (2025). Codificador JavaScript Base64 XOR Online. Sybcodex. https://www.sybcodex.com/2025/05/codificador-javascript-base64-xor-online.html

Mozilla Developer Network (2024). WindowOrWorkerGlobalScope.atob(). https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/atob

W3Schools (2024). JavaScript String charCodeAt() Method. https://www.w3schools.com/jsref/jsref_charcodeat.asp

 

Redactor: Sybcodex (Joel Sotelo Bustamante)

Categoría: Tecnología - ADMSoftCorp

Título del artículo: Cómo Desencriptar un JavaScript Encriptado con Base64 XOR en HTML

Número de edición: 1.0

Escrito en el año: 2025

-----------------------------------------------

Tienda online de libros: 👉 Book Sh💓p

©Todos los derechos reservados al autor.

Publicar un comentario

0 Comentarios

ADS

Ad Code

Primero las cookies

Nuestra web utiliza cookies para ofrecerle la mejor experiencia y anuncios personalizados

Aceptar cookies