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/assets/docs/flow-diagram-caesar-cipher.jpeg b/assets/docs/flow-diagram-caesar-cipher.jpeg new file mode 100644 index 0000000..65cc2d5 Binary files /dev/null and b/assets/docs/flow-diagram-caesar-cipher.jpeg differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..8c8322b --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + + Document + + + + + \ No newline at end of file diff --git a/js/app.js b/js/app.js new file mode 100644 index 0000000..8418c5d --- /dev/null +++ b/js/app.js @@ -0,0 +1,88 @@ +// Creando funcion Cifrado Cesar +function cipher(msg, x) { + // Creando variables + var origCode = 0; + var newCode = 0; + var newLetter = ''; + var cipherMsg = ''; + + // Recorriendo el string de izquierda a derecha + for (var i = 0; i < msg.length; i++) { + // Encontramos el código de cada caracter con el método charCodeAt + origCode = msg.charCodeAt(i); + // Si el caracter es una letra mayúscula o minúscula (entre los códigos 65 y 90 o 97 y 122), + // realiza el cifrado, de lo contrario agrega el caracter original al nuevo string + if (origCode >= 'A'.charCodeAt(0) && origCode <= 'Z'.charCodeAt(0)) { + newCode = (origCode - 'A'.charCodeAt(0) + x) % 26 + 'A'.charCodeAt(0); + newLetter = String.fromCharCode(newCode); + cipherMsg += newLetter; + } else if (origCode >= 'a'.charCodeAt(0) && origCode <= 'z'.charCodeAt(0)) { + newCode = (origCode - 'a'.charCodeAt(0) + x) % 26 + 'a'.charCodeAt(0); + newLetter = String.fromCharCode(newCode); + cipherMsg += newLetter; + } else { + cipherMsg += String.fromCharCode(origCode); + } + } + // Retornando mensaje cifrado + return alert('Mensaje cifrado:\n' + cipherMsg); +} + +// Creando función para descrifrar +function decipher(msg, x) { + // Creando variables + var newCode = 0; + var origCode = 0; + var origLetter = ''; + var decipherMsg = ''; + + // Recorriendo el string de izquierda a derecha + for (var i = 0; i < msg.length; i++) { + // Encontramos el código de cada caracter mediante el método charCodeAt + newCode = msg.charCodeAt(i); + // Si el caracter es una letra mayúscula o minúscula (entre los códigos 65 y 90 o 97 y 122), + // realiza el cifrado, de lo contrario agrega el caracter original al nuevo string + if (newCode >= 'A'.charCodeAt(0) && newCode <= 'Z'.charCodeAt(0)) { + if ((newCode - x % 26) < 'A'.charCodeAt(0)) { + origCode = 'Z'.charCodeAt(0) - (x % 26) + (newCode - 'A'.charCodeAt(0)) + 1; + } else { + origCode = (newCode - x % 26); + } + origLetter = String.fromCharCode(origCode); + decipherMsg += origLetter; + } else if (newCode >= 'a'.charCodeAt(0) && newCode <= 'z'.charCodeAt(0)) { + if ((newCode - x % 26) < 'a'.charCodeAt(0)) { + origCode = 'z'.charCodeAt(0) - (x % 26) + (newCode - 'a'.charCodeAt(0)) + 1; + } else { + origCode = (newCode - x % 26); + } + origLetter = String.fromCharCode(origCode); + decipherMsg += origLetter; + } else { + decipherMsg += String.fromCharCode(newCode); + } + } + // Retornando mensaje descifrado + return alert('Mensaje descifrado:\n' + decipherMsg); +} + +// Menú de opciones para cifrar o descifrar mensajes +do { + var menu = '1.Cifrar mensaje\n2.Descifrar mensaje\n3.Salir'; + var option = prompt('Ingrese una opción:\n' + menu); + // Si la opción es 1 + if (option === '1') { + var msg = prompt('Ingrese mensaje a cifrar:'); + // Llamar función cipher + if (msg !== '') { + cipher(msg, 33); + } + // Si la opción es 2 + } else if (option === '2') { + var msg = prompt('Ingrese mensaje a descifrar:'); + // Llamar función decipher + if (msg !== '') { + decipher(msg, 33); + } + } +} while (option !== '3'); \ No newline at end of file