JavaScriptGuiones de JavaScript *
JavaScriptGuiones e información sobre JavaScript
GuionesÍndice de guiones ("scripts") de JavaScript Los últimosÚltimos guiones ("scripts") incorporados o modificados Los más vistosGuiones ("scripts") más visitados
ArtículosArtículos y apuntes sobre JavaScript Prensa digitalJavaScript en la prensa digital
InternetJuan Rodríguez [Consultor]
Consultoría en Internet
ContactarPor si quieres escribirnos...
*
Mapa WebMapa Web (Directorio) de nuestros contenidos sobre JavaScript << Menú >>
Juan Rodríguez [Consultor] Guiones (scripts) de JavaScript
Estás en: Juan Rodríguez [Consultor] > JavaScript > Índice de guiones > Codificación de cadenas alfanuméricas <

Codificación de cadenas alfanuméricas

Verificado en:

Opera 9.02 y 9.20
Opera 6.05, 7 y 8
Firefox 1.5 y 3.0b5
Mozilla 1.8
Netscape 7
Internet Explorer 6 y 7

Opera web browser

Utilidad compuesta de dos guiones. El primero codifica y el segundo descodifica, en ambos casos, cadenas alfanuméricas.

La codificación lo es por sustitución de caracteres más uno. Es decir, la cadena "de" la codifica como "ef" basándose en el abecedario castellano. A cada letra de entrada, le asigna la siguiente ("+1") en el abecedario. Así la palabra "Internet" la codifica como "Jñufsñfu".

Puede cambiarse la fórmula y que codifique sumando dos ("+2") o cualquier otro sistema, aunque ello no es seguro. Las combinaciones no son tantas y lo que es peor, es fácil de descifrar por sistemas automáticos que jueguen con "+1", "-3", "*5" etc.

Es preciso tener en cuenta que una fórmula como [ 1 +2 +3 -4 =2 ] tiene el mismo resultado que [ 3 -1] o que [ (100/2) -49 +1 ], por poner sólo unas de los millones de combinaciones posibles. Es decir: no hay resultado único en base a una fórmula matemática; el mismo resultado puede conseguirse de diferentes alternativas, a veces incluso insospechadas, por lo que la seguridad de un sistema de codificación/decodificación no radica en su complejidad matemática. Las matemáticas son las mismas para todos, El ingenio no tanto. Es por ahí donde hay que buscar sistemas seguros.

Si se desea personalizar la codificación, lo más eficaz es cambiar el abecedario que sirve de referencia.

En lugar del conocido "ABCDEF..." poner "AKI50CMJ..." o cualquier otra combinación aleatoria sin más precaución que no repetir letras o números.

Así, por ejemplo, la palabra "de" la codificaría (con la misma fórmula, +1) por "0c". Para descifrarlo es necesario saber la fórmula y, sobre todo, el abecedario que sirve de referencia. Así y sabiendo que cambiamos cada letra por la siguiente ("+1"), ante la palabra ya codificada "guapo" ¿cual es la palabra original? Romper un sistema así estructurado es un poco más complicado. Hay que jugar con todas las combinaciones de todas las letras (mayúsculas, minúsculas y números), que son unos cuantos miles de millones y eso no está al alcance de cualquiera.

Otra ventaja de cambiar el abecedario de referencia, es la facilidad para alternar entre claves por días, semanas, ... Si el cambio se hace a nivel de fórmula corremos el riesgo de errores de cálculo (pensar que hay que hacer una fórmula inversa para la decodificación). Por contra un mismo abecedario clave nos sirve tanto para codificar como para descodificar. No hemos de preocuparnos por la inversa, que por cierto, en estos guiones es "-1".

 
Ejemplos de aplicación de este guión

Instalación Ver código Descargar + guiones

Código en el cuerpo (body) de la página

<script type="text/javascript">
<!-- inicio
function codificar(texto){
clave="0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ*";
resultado=' ';
for (cont=0; cont<texto.length; cont++)
{ caracter=texto.substring(cont,cont+1);
posic=clave.indexOf(caracter);
codigo=clave.substring(posic+1,posic+2);
resultado+=codigo; }
document.getElementById("form1").codificado.value=resultado;}
// final -->
</script>

<form name="form1" action="">
<input name="original" type="text" size="25" value="(texto a codificar)">
<input type='button' value="Codificar" onclick="codificar(this.form.original.value)">
<input name='codificado' type="text" size="25">
</form>
<script type="text/javascript">
<!-- inicio
function Descodificar(texto){
clave="0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ*";
resultado=' ';
for (cont=0; cont < texto.length; cont++)
{ caracter=texto.substring(cont,cont+1);
posic=clave.indexOf(caracter);
codigo=clave.substring(posic-0,posic-1);
resultado+=codigo; }
document.getElementById("form2").descodificado.value=resultado;}
// final -->
</script>

<form name="form2" action="">
<input name="precodificado" type="text" size="25" value="(texto a descodificar)">
<input type='button' value="Descodificar" onclick="Descodificar(this.form.precodificado.value)">
<input name='descodificado' type="text" size="25">
</form>


javascriptCodificación de cadenas alfanuméricas

Juan Rodríguez [Consultor]

Cuidar de nuestro entorno natural,
puede y debe ser cosa de todos.

Por ejemplo, no gastando papel para
imprimir una información que siempre
puedes tener en la pantalla de tu pc.
- -

Guiones y "scripts" de JavaScript

Juan Rodríguez [Consultor]
Barcelona, Begues, Castelldefels