Cifrar significa codificar. El cifrado César es uno de los primeros métodos de cifrado conocidos. El emperador romano Julio César lo usaba para enviar órdenes secretas a sus generales en los campos de batalla.
El cifrado césar es una de las técnicas más simples para cifrar un mensaje. Es un tipo de cifrado por sustitución, es decir que cada letra del texto original es reemplazada por otra que se encuentra un número fijo de posiciones (desplazamiento) más adelante en el mismo alfabeto.
Por ejemplo, si usamos un desplazamiento (offset) de 3 posiciones:
- La letra A se cifra como D.
- La palabra CASA se cifra como FDVD.
- Alfabeto sin cifrar: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- Alfabeto cifrado: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
En la actualidad, todos los cifrados de sustitución simple se descifran con mucha facilidad y, aunque en la práctica no ofrecen mucha seguridad en la comunicación por sí mismos; el cifrado César sí puede formar parte de sistemas más complejos de codificación, como el cifrado Vigenère, e incluso tiene aplicación en el sistema ROT13.
#ME Es una aplicación y herramienta para Influencers, conductores de medios de comunicación y usuarios en general.
Siempre hemos visto en television, radio y ahora en internet actividades para ganar premios y ¿Qué tal si esos premios ahora se ganan con algun cifrado por internet?
Los usuarios ( Influencers, conductores, público en general) lanzan un offset al inicio de un live Stream /evento o en sus redes sociales y al terminar el stream/evento otorgan el código para descifrar el mensaje.
Este mensaje puede ser desde alguna marca la cual patrocina al influencer o alguna actividad que el mismo este realizando sobre alguna campaña publicitaria o personal. El mensaje descifrado sera el brand de la marca o la misma marca y la compartiran por twitter o alguna red social. Esta se comparte con un # y etiquetas. Los primeros en publicarlo de manera correcta serán ganadores de productos de la marca, boletos, eventos o aquello que decida el usuario-ifluencer.
La interfaz permite al usuario:
- Elegir un desplazamiento (offset) indicando cuántas posiciones queremos que el cifrado desplace cada caracter.
- Insertar un mensaje (texto) que queremos cifrar.
- Ver el resultado del mensaje cifrado.
- Insertar un mensaje (texto) a descifrar.
- Ver el resultado del mensaje descifrado.
- Antes que nada, asegúrate de tener un 📝 editor de texto en condiciones, algo como Atom, Visual Code, Sublime Text o cualquier otro de tu preferencia.
- Para ejecutar los comandos a continuación necesitarás una 🐚
UNIX Shell,
que es un programa que interpreta líneas de comando (command-line
interpreter) así como tener [git]instalado. Si usas un sistema operativo "UNIX-like", como GNU/Linux o MacOS,
ya tienes una shell (terminal) instalada por defecto (y probablemente
gittambién). Si usas Windows puedes usar Git bash, aunque recomendaría que consideres probar 🐧 GNU/Linux como tu Sistema Operativo. - Haz tu propio 🍴 fork de este repositorio
- ⬇️ Clona tu fork a tu computadora (copia local).
- 📦 Instala las dependencias del proyecto con el comando
npm install. Esto asume que has instalado Node.js (que incluye npm). - Si todo ha ido bien, deberías poder ejecutar las 🚥
pruebas unitarias (unit tests) con el comando
npm run test. - A codear se ha dicho! 🚀
README.md: debe explicar cómo descargar, instalar y ejecutar la aplicación así como una introducción a la aplicación, su funcionalidad y decisiones de diseño que tomaron.src/index.html: este es el punto de entrada a tu aplicación. Este archivo debe contener tu markup (HTML) e incluir el CSS y JavaScript necesario.src/cipher.js: acá debes implementar el objeto cipher, el cual debe estar exportado en el objeto global (window). Este objeto (cipher) debe contener dos métodos:cipher.encode(offset, string):offsetes el número de posiciones que queremos mover a la derecha en el alfabeto ystringel mensaje (texto) que queremos cifrar.cipher.decode(offset, string):offsetes el número de posiciones que queremos mover a la izquierda en el alfabeto ystringel mensaje (texto) que queremos descifrar.
src/index.js: acá debes escuchar eventos del DOM, invocarcipher.encode()ocipher.decode()según sea necesario y actualizar el resultado en la UI.test/cipher.spec.js: este archivo contiene algunos tests de ejemplo y acá tendrás que implementar los tests(pruebas ) paracipher.encode()ycipher.decode().
##Test
Los tests unitarios deben cubren un mínimo del 70% de statements, functions
y lines, y un mínimo del 50% de branches. El boilerplate ya contiene el
setup y configuración necesaria para ejecutar los tests (pruebas) así como code
coverage para ver el nivel de cobertura de los tests usando el comando npm run test.
Los test comprueban:
- Cipher
Debería ser un objeto
-
Encode: Debería ser una función y debería retornar "ABCDEFGHIJKLMNOPQRSTUVWXYZ" para "HIJKLMNOPQRSTUVWXYZABCDEFG" con offest 33
-
Decode: Debería ser una función y debería retornar "HIJKLMNOPQRSTUVWXYZABCDEFG" para "ABCDEFGHIJKLMNOPQRSTUVWXYZ" con offest 33
- eslint
- htmlhint
- mocha
- nyc
- opener
visita el proyecto en github pages : https://danysquirrel.github.io/cdmx-2019-01-bc-core-am-cipher/src/
##Construido con 🛠️
Las herramientas que se utilizaron para crear este proyecto fueron: El editor de texto Visual Code o cualquier otro de su preferencia. La lógica del proyecto esta implementada completamente en JavaScript (ES6) [vanilla JavaScript]. Contiene markup (HTML) e incluir el CSS y JavaScript Se usaron fuentes tipográficas de https://fonts.google.com
##Contribuciones🖇️
Por favor lee el CONTRIBUTING.md para detalles de nuestro código de conducta, y el proceso para enviarnos pull requests o a través del correo electrónico.
##Autores ✒️
Base de proyecto
- diegovelezg
- shirley-startary
- developerVilchez
- lupomontero
- gaposx
(#ME)
- Daniela Sierra danysquirrel
- Al equipo de Coaches por apoyarme durante este proyecto. 📢
- Al Squad #Memexicode y compañeras en general por su trabajo de equipo e inspiración 🤓.
Cifrar significa codificar. El cifrado César es uno de los primeros métodos de cifrado conocidos. El emperador romano Julio César lo usaba para enviar órdenes secretas a sus generales en los campos de batalla.
El cifrado césar es una de las técnicas más simples para cifrar un mensaje. Es un tipo de cifrado por sustitución, es decir que cada letra del texto original es reemplazada por otra que se encuentra un número fijo de posiciones (desplazamiento) más adelante en el mismo alfabeto.
Por ejemplo, si usamos un desplazamiento (offset) de 3 posiciones:
- La letra A se cifra como D.
- La palabra CASA se cifra como FDVD.
- Alfabeto sin cifrar: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- Alfabeto cifrado: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
En la actualidad, todos los cifrados de sustitución simple se descifran con mucha facilidad y, aunque en la práctica no ofrecen mucha seguridad en la comunicación por sí mismos; el cifrado César sí puede formar parte de sistemas más complejos de codificación, como el cifrado Vigenère, e incluso tiene aplicación en el sistema ROT13.
#ME Es una aplicación y herramienta para Influencers, conductores de medios de comunicación y usuarios en general.
Siempre hemos visto en television, radio y ahora en internet actividades para ganar premios y ¿Qué tal si esos premios ahora se ganan con algun cifrado por internet?
Los usuarios ( Influencers, conductores, público en general) lanzan un offset al inicio de un live Stream /evento o en sus redes sociales y al terminar el stream/evento otorgan el código para descifrar el mensaje.
Este mensaje puede ser desde alguna marca la cual patrocina al influencer o alguna actividad que el mismo este realizando sobre alguna campaña publicitaria o personal. El mensaje descifrado sera el brand de la marca o la misma marca y la compartiran por twitter o alguna red social. Esta se comparte con un # y etiquetas. Los primeros en publicarlo de manera correcta serán ganadores de productos de la marca, boletos, eventos o aquello que decida el usuario-ifluencer.
La interfaz permite al usuario:
- Elegir un desplazamiento (offset) indicando cuántas posiciones queremos que el cifrado desplace cada caracter.
- Insertar un mensaje (texto) que queremos cifrar.
- Ver el resultado del mensaje cifrado.
- Insertar un mensaje (texto) a descifrar.
- Ver el resultado del mensaje descifrado.
- Antes que nada, asegúrate de tener un 📝 editor de texto en condiciones, algo como Atom, Visual Code, Sublime Text o cualquier otro de tu preferencia.
- Para ejecutar los comandos a continuación necesitarás una 🐚
UNIX Shell,
que es un programa que interpreta líneas de comando (command-line
interpreter) así como tener [git]instalado. Si usas un sistema operativo "UNIX-like", como GNU/Linux o MacOS,
ya tienes una shell (terminal) instalada por defecto (y probablemente
gittambién). Si usas Windows puedes usar Git bash, aunque recomendaría que consideres probar 🐧 GNU/Linux como tu Sistema Operativo. - Haz tu propio 🍴 fork de este repositorio
- ⬇️ Clona tu fork a tu computadora (copia local).
- 📦 Instala las dependencias del proyecto con el comando
npm install. Esto asume que has instalado Node.js (que incluye npm). - Si todo ha ido bien, deberías poder ejecutar las 🚥
pruebas unitarias (unit tests) con el comando
npm run test. - A codear se ha dicho! 🚀
README.md: debe explicar cómo descargar, instalar y ejecutar la aplicación así como una introducción a la aplicación, su funcionalidad y decisiones de diseño que tomaron.src/index.html: este es el punto de entrada a tu aplicación. Este archivo debe contener tu markup (HTML) e incluir el CSS y JavaScript necesario.src/cipher.js: acá debes implementar el objeto cipher, el cual debe estar exportado en el objeto global (window). Este objeto (cipher) debe contener dos métodos:cipher.encode(offset, string):offsetes el número de posiciones que queremos mover a la derecha en el alfabeto ystringel mensaje (texto) que queremos cifrar.cipher.decode(offset, string):offsetes el número de posiciones que queremos mover a la izquierda en el alfabeto ystringel mensaje (texto) que queremos descifrar.
src/index.js: acá debes escuchar eventos del DOM, invocarcipher.encode()ocipher.decode()según sea necesario y actualizar el resultado en la UI.test/cipher.spec.js: este archivo contiene algunos tests de ejemplo y acá tendrás que implementar los tests(pruebas ) paracipher.encode()ycipher.decode().
##Test
Los tests unitarios deben cubren un mínimo del 70% de statements, functions
y lines, y un mínimo del 50% de branches. El boilerplate ya contiene el
setup y configuración necesaria para ejecutar los tests (pruebas) así como code
coverage para ver el nivel de cobertura de los tests usando el comando npm run test.
Los test comprueban:
- Cipher
Debería ser un objeto
-
Encode: Debería ser una función y debería retornar "ABCDEFGHIJKLMNOPQRSTUVWXYZ" para "HIJKLMNOPQRSTUVWXYZABCDEFG" con offest 33
-
Decode: Debería ser una función y debería retornar "HIJKLMNOPQRSTUVWXYZABCDEFG" para "ABCDEFGHIJKLMNOPQRSTUVWXYZ" con offest 33
- eslint
- htmlhint
- mocha
- nyc
- opener
visita el proyecto en github pages : https://danysquirrel.github.io/cdmx-2019-01-bc-core-am-cipher/src/
##Construido con 🛠️
Las herramientas que se utilizaron para crear este proyecto fueron: El editor de texto Visual Code o cualquier otro de su preferencia. La lógica del proyecto esta implementada completamente en JavaScript (ES6) [vanilla JavaScript]. Contiene markup (HTML) e incluir el CSS y JavaScript Se usaron fuentes tipográficas de https://fonts.google.com
##Contribuciones🖇️
Por favor lee el CONTRIBUTING.md para detalles de nuestro código de conducta, y el proceso para enviarnos pull requests o a través del correo electrónico.
##Autores ✒️
Base de proyecto
- diegovelezg
- shirley-startary
- developerVilchez
- lupomontero
- gaposx
(#ME)
- Daniela Sierra danysquirrel
- Al equipo de Coaches por apoyarme durante este proyecto. 📢
- Al Squad #Memexicode y compañeras en general por su trabajo de equipo e inspiración 🤓.