Skip to content
This repository was archived by the owner on Jan 8, 2020. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Cifrado César</title>
</head>
<body>
<script type="text/javascript" src="js/app.js"></script>
</body>

</html>
121 changes: 121 additions & 0 deletions js/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
// Se solicita ingresar el texto a evaluar
// var textOne = prompt('Ingresar texto a cifrar');

// Se codifica la función y se declaran los 2 parámetros string que será el texto ingresado anteriormente y code que es la constante. Para este ejemplo es 33
// Se declaran las variables a usar de la función
function cipher(string, code) {
var finalStringOne = '';
var codAsciiOne;
var newStringOne;
var notLetter = 0;

// Se inicializa el for evaluando cada uno de los caracteres a cifrar
for (i = 0; i < string.length;i++) {
// Se evalua el caso de las mayúsculas a traves de su posición. Debe estar en el rango 65-90. Se aplica la formula para cifrar
if ((string.charCodeAt(i) >= 65) && (string.charCodeAt(i) <= 90)) {
codAsciiOne = ((string.charCodeAt(i) - 65 + code) % 26 + 65);
// Se evalua el caso de las minúsculas a traves de su posición. Debe estar en el rango 97-122. Se aplica la formula para cifrar
} else if ((string.charCodeAt(i) >= 97) && (string.charCodeAt(i) <= 122)) {
codAsciiOne = ((string.charCodeAt(i) - 97 + code) % 26 + 97);
// Se evalua el resto de caracteres que no calzan en mayúsculas y minúsculas. Cambia el estado inicial declarado
} else {
// Luego de aplicar la fórmula se tiene la nueva posición deseada con esta posición se obtiene el texto cifrado
notLetter = 1;
newStringOne = String.fromCharCode(codAsciiOne);
}

// Se crea una variable que va concatenando los resultados anteriores y devuelve un solo valor
finalStringOne += newStringOne;
}

// Se ejecuta si es que en el texto se ubico otro tipo de caracteres
if (notLetter === 1) {
finalStringOne = 'Error. Verificar texto ingresado';
}
// Devuelve el valor de la nueva cadena cifrada
return finalStringOne;
}

// Invoca la función, llama a los parametros asignados
// cipher(textOne,33);


// Se solicita ingresar el texto a evaluar
// var textTwo = finalStringOne;

// Se codifica la función y se declaran los 2 parámetros string que será el valor cifrado anteriormente y code que es la constante. Para este ejemplo es 33
function decipher(string, code) {
// Se declaran las variables a usar de la función
var finalStringTwo = '';
var codAsciiTwo;
var newStringTwo;
var notLetter = 0;
var rest = 0;

// Se inicializa el for evaluando cada uno de los caracteres a descifrar
for (i = 0; i < string.length; i++) {
/* Se evalua el caso de las mayúsculas a traves de su posición. Debe estar en el rango 65-90.
Se declara una variable resta que toma la posición actual del caracter le resta 65 y 33%26.
Si este valor es negativo a la posición del caracter le suma 65 y 26 */

/* Se evalua el caso de las minúsculas a traves de su posición. Debe estar en el rango 97-122.
Se declara una variable resta que toma la posición actual del caracter le resta 97 y 33%26.
Si este valor es negativo a la posición del caracter le suma 97 y 26 */

if ((string.charCodeAt(i) >= 65) && (string.charCodeAt(i) <= 90)) {
rest = string.charCodeAt(i) - 65 - code % 26;
if (rest < 0) {
codAsciiTwo = (rest + 65 + 26);
} else {
codAsciiTwo = (rest + 65);
}
} else if ((string.charCodeAt(i) >= 97) && (string.charCodeAt(i) <= 122)) {
rest = string.charCodeAt(i) - 97 - code % 26;
if (rest < 0) {
codAsciiTwo = (rest + 97 + 26);
} else {
codAsciiTwo = (rest + 97);
}
// Se evalua el resto de caracteres que no calzan en mayúsculas y minúsculas. Cambia el estado inicial declarado
} else {
notLetter = 1;
}
// Luego de aplicar la fórmula se tiene la nueva posición deseada con esta posición se obtiene el texto cifrado
newStringTwo = String.fromCharCode(codAsciiTwo);
// Se crea una variable que va concatenando los resultados anteriores y devuelve un solo valor
finalStringTwo += newStringTwo;
}

// Se ejecuta si es que en el texto se ubico otro tipo de caracteres
if (notLetter === 1) {
finalStringTwo = 'Error. Verificar texto ingresado';
}

// Devuelve el valor de la cadena descifrada
return finalStringTwo;
}

// Menú de opciones
do {
var menu = '1.Cifrar mensaje\n2.Descifrar mensaje\n3.Salir';
var option = prompt('Seleccione una opción:\n' + menu);

// Si la opción es 1 se ejecuta la función del cifrado
if (option === '1') {
var textOne = prompt('Ingrese el mensaje:');

if (textOne !== '') {
cipher(textOne, 33);
break;
}

// Si la opción es 2
} else if (option === '2') {
var textTwo = prompt('Ingrese mensaje a descifrar:');
// Llamar función decipher
if (textTwo !== '') {
decipher(textTwo, 33);
break; // break para salir del bucle
}
}
} while (option !== '3');