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
29 changes: 29 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -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
}
}
Binary file added assets/Diagrama de Cifrado de Cesar.pdf
Binary file not shown.
Binary file added assets/images/ASCII.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/cesar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/one.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/two.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions css/main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
body {
font-family: Georgia, "Times New Roman",
Times, serif;
color: black;
background-color: #33FFF6;
padding: 40px;
}
h1 {
font-family: Helvetica, Geneva, Arial,
SunSans-Regular, sans-serif;
margin-left:360px;
padding: 30px;
}
p{
font-family: Helvetica, Geneva, Arial,
SunSans-Regular, sans-serif;
font-size:20px;
text-align: justify;
}
.i1{

padding: 40px;
position:absolute;
}
.i2{
margin-left: 650px;
padding: 40px;
margin-bottom: 40px;
position: relative;
}
26 changes: 26 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>CIFRADO CESAR</title>
<link rel="stylesheet" href="css/main.css">
</head>

<body>

<h1><strong><big>Cifrado de César</big></strong></h1>

<p> La clave para el Cifrado César sera un número entre 1 y 26. A menos que conozcas la clave (es decir, conozcas el número usado para encriptar el mensaje), no podrás desencriptar el código secreto. El Cifrado César fue uno de los primeros sistemas de cifrado que se inventaron. Con este cifrado, para encriptar un mensaje se toma cada letra del mismo (en criptografía, estas letras se llaman símbolos porque pueden ser letras, números o cualquier otro signo) y se la reemplaza con una letra "desplazada". Si desplazas la letra A un espacio, obtienes la letra B. Si desplazas la A dos espacios, obtienes la letra C. </p>



<h2>ASCII</h2>
<p> Como implementamos este cambio de letras en un programa? Podemos hacer esto representando cada letra como un número llamado ordinal, y luego sumando o restando a este número para formar un nuevo ordinal (y una nueva letra). ASCII (que se pronuncia "asqui" y corresponde a las siglas en inglés de Código Estándar Americano para el Intercambio de Información) es un código que relaciona cada caracter con un número entre 32 y 126.Las mayúsculas de la "A" a la "Z" reciben números ASCII entre 65 y 90. Las minúsculas de "a" a "z" reciben los números ASCII entre 97 y 122. Los caracteres numéricos de "0" a "9" reciben números ASCII de 48 a 57. Las computadoras modernas usan UTF-8 en lugar de ASCII. Pero UTF-8 es compatible con ASCII, de modo que los ordinales UTF-8 para los caracteres ASCII son los mismos que los ordinales ASCII.</p>

<img class="i1" src="assets/images/ASCII.gif" alt="">
<img class="i2" src="assets/images/cesar.png" alt="">
<script src="js/app.js"></script>
</body>

</html>
71 changes: 71 additions & 0 deletions js/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// Pedimos al usuario la acción que desea realizar.
function welcome(option) {
do {
var valid = /^[A-z\s]*$/; // Validamos si el texto corresponde solo a letras.
var answer = prompt('Ingrese el texto que desea cifrar o descifrar');
if (valid.test(answer) === false) { // Si el cliente no usa letras sólo de la A-z un alert le avisará.
alert('Ingrese solo letras de la A a la Z');
}
} while (answer === '' || valid.test(answer) === false || answer === null); // Si está vacío, o no es de A-z le avisa y le vuelve a preguntar.


do {
var answer1 = prompt('Ingresa el número de lo que quieres hacer: 1) Cifrarlo o 2) Decifrarlo');
if (answer1 !== '') {
if (answer1 === '1') {
cipher(); // Llama a la funcion cifrar.
} else if (answer1 === '2') {
decipher(); // Llama a la funcion decifrar.
} else {
alert('Ingrese una opción válida: 1 o 2');
}
}
} while (answer1 === '' || (answer1 !== '1' && answer1 !== '2')); // Si está vacío, o no es '1' o '2' vuelve a preguntar.


function cipher() { // Función que cifra o codifica un texto.
var arr = []; // Guardamos las letras codificadas.
for (var i = 0; i < answer.length; i++) {
var convertLetter = answer.charCodeAt(i); // Obtenemos el número equivalente en ASCII.

if (convertLetter >= 65 && convertLetter <= 90) { // Si es mayúsculas continuará asi
var newNumber = (convertLetter - 65 + 33) % 26 + 65; // Fórmula que transforma la mayúscula en su equivalente 33 posiciones hacia la derecha.
var newLetter = String.fromCharCode(newNumber); // El número equivalente lo traduce a letra.
arr.push(newLetter); // Esto pushea la letra mayúscula codificada al array 'arr'.
}
if (convertLetter >= 97 && convertLetter <= 122) { // Si es minúscula continuará asi.
var newNumber2 = (convertLetter - 97 + 33) % 26 + 97; // Fórmula que transforma la mayúscula en su equivalente 33 posiciones hacia la derecha.
var newLetter2 = String.fromCharCode(newNumber2); // El número equivalente lo traduce a letra.
arr.push(newLetter2); // Esto pushea la letra minúscula codificada al array 'arr'.
}
if (convertLetter === 32) { // Si es un espacio devuelve un espacio. 32 en ASCII equivale a un espacio.
arr.push(' '); // Esto pushea el espacio codificado al array 'arr'.
}
}
return alert('Tu texto cifrado es: ' + arr.join('')); // Devuelve una alerta con el array transformado a string. Es la palabra cifrada.
}


function decipher() { // Función que decodifica o decifra un texto.
var arr = []; // Guardamos las letras decodificadas.
for (var j = 0; j < answer.length; j++) {
var convertLetter = answer.charCodeAt(j); // Obtenemos el número equivalente en ASCII
if (convertLetter >= 65 && convertLetter <= 90) { // Si es mayúscula continuará asi.
var newNumber3 = (convertLetter - 65 - 33 + 2 * 26) % 26 + 65; // Fórmula que transforma la mayúscula en su equivalente 33 posiciones hacia la izquierda
var newLetter3 = String.fromCharCode(newNumber3); // El número equivalente lo traduce a letra.
arr.push(newLetter3); // Esto pushea la letra mayúscula codificada al array 'arr'
}
if (convertLetter >= 97 && convertLetter <= 122) { // Si es minúscula hace lo siguiente.
var newNumber4 = (convertLetter - 97 - 33 + 2 * 26) % 26 + 97; // Fórmula que transforma la mayúscula en su equivalente 33 posiciones hacia la izquierda
var newLetter4 = String.fromCharCode(newNumber4); // El número equivalente lo traduce a letra.
arr.push(newLetter4); // Esto pushea la letra minúscula codificada al array 'arr'
}
if (convertLetter === 32) { // si es un espacio devuelve un espacio. 32 en ASCII equivale a un espacio.
arr.push(' '); // Esto pushea el espacio codificado al array 'arr'
}
}
return alert('Tu texto cifrado es: ' + arr.join('')); // Devuelve una alerta con el array transformado a string. Es la palabra decifrada.
}
}

welcome(); // Llamamos a la funcion