diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..fbb5dc3 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,29 @@ +{ + "parserOptions": { + "ecmaVersion": 6 + }, + "rules": { + "keyword-spacing": 1, + "space-before-function-paren": [1, "never"], + "eqeqeq": 1, + "space-infix-ops": 1, + "comma-spacing": 1, + "brace-style": 1, + "no-multiple-empty-lines": 1, + "camelcase": 1, + "func-call-spacing": 1, + "key-spacing": 1, + "semi": 1, + "no-floating-decimal": 1, + "no-multi-spaces": 1, + "object-property-newline": 1, + "padded-blocks": [1, "never"], + "space-before-blocks": 1, + "space-in-parens": 1, + "spaced-comment": 1, + "quotes": [1, "single"], + "id-length": [1, { "exceptions": ["i", "j", "x"] }], + "indent": [1, 2], + "no-array-constructor": 1 + } +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..ee93818 --- /dev/null +++ b/index.html @@ -0,0 +1,10 @@ + + + + + Cifrando con Cesar + + + + + diff --git a/js/app.js b/js/app.js new file mode 100644 index 0000000..fbd826b --- /dev/null +++ b/js/app.js @@ -0,0 +1,85 @@ +// funcion para cifrar una cadena de texto +function cipher(myString) { + var myStringCipher = ''; // almacenar el valor del string Cifrado + + for (var i = 0 ; i < myString.length ; i++) { // recorrer el string del usuario + var numberOfTheLetter = myString.charCodeAt(i); // numero de la letra en el codigo ASCII + var cipherFormula; // almacena fórmula de cifrado que se utiliza + var theNewLetter; // alamacena valor de la nueva letra cifrada + if (numberOfTheLetter >= 65 && numberOfTheLetter <= 90) { // valor UNICODE de letras mayúsculas en ASCII + cipherFormula = (numberOfTheLetter - 65 + 33) % 26 + 65; // formula de Cifrado Cesar: obtener nuevo numero de letra en el codigo ASCII + theNewLetter = String.fromCharCode(cipherFormula); // obtener el valor de la letra cifrada + myStringCipher += theNewLetter; // formar el string cifrado + } else if (numberOfTheLetter >= 97 && numberOfTheLetter <= 122) { // valor UNICODE de letras minúsculas en ASCII + cipherFormula = (numberOfTheLetter - 97 + 33) % 26 + 97; // fórmula de cifrado Cesar + theNewLetter = String.fromCharCode(cipherFormula); // valor de letra cifrada + myStringCipher += theNewLetter; // formar el string cifrado + } else if (numberOfTheLetter === 32) { // verificar si es un espacio vacio + myStringCipher += ' '; // añadir espacio en string cifrado + } else { + break; // Si no es una letra detente + } + } + return myStringCipher; // Retorna el valor de la cadena cifrada +} + +// funcion para descifrar una cadena de texto +function decipher(myString) { + var myStringDechiper = ''; // alamacenar el valor del string decifrado + for (var i = 0; i < myString.length ; i++) { // recorrer el string del usuario + var numberOfTheLetter = myString.charCodeAt(i); // valor UNICODE de la letra en el código ASCII + var decipherFormula; // almacena fórmula de decifrado + var theNewLetter; // almacena el nuevo valor de la letra decifrada + if (numberOfTheLetter >= 65 && numberOfTheLetter <= 90) { // saber si la letra está en mayúscula + decipherFormula = (numberOfTheLetter - 13 - 33) % 26 + 65; // formula para descifrar + theNewLetter = String.fromCharCode(decipherFormula); // obtener el valor de la letra descifrada + myStringDechiper += theNewLetter; // formar la cadena descifrada + } else if (numberOfTheLetter >= 97 && numberOfTheLetter <= 122) { // saber si la letra está en minúscula + decipherFormula = (numberOfTheLetter - 45 - 33) % 26 + 97; // formula para descifrar + theNewLetter = String.fromCharCode(decipherFormula); // obtener el valor de la letra descifrada + myStringDechiper += theNewLetter; // formar la cadena descifrada + } else if (numberOfTheLetter === 32) { // verificar si es un espacio vacio + myStringDechiper += ' '; // añadir un espacio en string decifrado + } else { + break; + } + } + return myStringDechiper; // retornar el valor de la cadena decifrada +} + +// fuction para saber que desea realizar el usuario +function dataUser(option) { + var userText; // almacenar el texto que el usuario ingreso. + var verification; // verificar que inicie con letras + + switch (true) { + case (option === '1'): + userText = prompt('¿Qué texto desea cifrar? (Por favor ingresar un texto)'); + verification = parseInt(userText); // parsear para verificar que una cadena de texto + // Si la cadena inicia con números volver a pedir un texto para cifrar + while (verification >= 0 || verification <= 0 || userText === '') { + userText = prompt('¿Qué texto desea cifrar? (Por favor ingresar un texto)'); + verification = parseInt(userText); // seguir parseando el string hasta que no inicie con números + } + alert(cipher(userText)); // mostrar un alert que invoque a la función cipher y retorne el texto cifrado + break; + + case (option === '2'): + userText = prompt('¿Qué texto desea descifrar? (Por favor ingresar un texto)'); + verification = parseInt(userText); // parsear para verificar que una cadena de texto + // Si la cadena inicia con números volver a pedir un texto para decifrar + while (verification >= 0 || verification <= 0 || userText === '') { + userText = prompt('¿Qué texto desea decifrar? (Por favor ingresar un texto)'); + verification = parseInt(userText); // seguir parseando el string hasta que no inicie con números + } + alert(decipher(userText)); // mostrar un alert que invoque a la función decipher y retorne el texto decifrado + break; + } +} + +// bucle para ver que desea realizar el usuario +do { + var menu = 'Por favor escribir 1 si desea cifrar un texto \n Por favor escribir 2 si desea descifrar un texto \n Por favor escribir 3 si desea salir del sistema'; + var option = prompt(menu); // mostrar el menu al usuario y alamcenar la opción que elije + dataUser(option); +} while (option !== '3'); // seguir preguntadole hasta que desee salir del programa