===== Crear nuestro propio cifrado Cesar desde la terminal con el comando tr ===== **Comando tr**: http://es.wikipedia.org/wiki/Tr_%28Unix%29\\ **Cifrado Cesar**: http://es.wikipedia.org/wiki/Cifrado_C%C3%A9sar Rango habitual de caracteres ordenado a utilizar por tr [!-~]. Se pueden utilizar hasta 256 símbolos. ([[http://en.wikipedia.org/wiki/SBCS|SBCS]]) !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Correspondencias mediante el siguiente desplazamiento creado con tr: //! > t//, //" > u//, //# > v//, //9 > .//, etc. tr '!-+,-56-JK-ab-~' 't-~!-*+-?@-VW-s' Ejemplo de cifrado y descifrado. echo "Recordar que este cifrado no es seguro" | tr '!-+,-56-JK-ab-~' 't-~!-*+-?@-VW-s' GZXdgYVg fjZ ZhiZ X^[gVYd cd Zh hZ\jgd echo "GZXdgYVg fjZ ZhiZ X^[gVYd cd Zh hZ\jgd" | tr 't-~!-*+-?@-VW-s' '!-+,-56-JK-ab-~' Recordar que este cifrado no es seguro Agregando más caracteres que los típicos imprimibles. echo "Recordar que este cifrado no es seguro (©§¿)" | tr '!-+,-56-JK-ab-~©§¿' 't-~!-*+-?@-VW-säüö' GZXdgYVg fjZ ZhiZ X^[gVYd cd Zh hZ\jgd {äüö| echo "GZXdgYVg fjZ ZhiZ X^[gVYd cd Zh hZ\jgd {äüö|" | tr 't-~!-*+-?@-VW-säüö' '!-+,-56-JK-ab-~©§¿' Recordar que este cifrado no es seguro (©§¿) Cifrando ficheros. $ cat TVenLinux.sh | tr '!-+,-56-JK-ab-~' 't-~!-*+-?@-VW-s' > TV_cifrado $ cat TV_cifrado | tr 't-~!-*+-?@-VW-s' '!-+,-56-JK-ab-~' > TV_descifrado $ md5sum TV* d9e17f816565dd5aa5414a09ef748574 TV_cifrado a8f1c8d9d87f84e29bcca2de1656a3fd TV_descifrado a8f1c8d9d87f84e29bcca2de1656a3fd TVenLinux.sh Ejecutando un script previamente cifrado. cat TV_cifrado | tr 't-~!-*+-?@-VW-s' '!-+,-56-JK-ab-~' | bash Creación de un alias para cifrar y descrifrar. alias cesar="tr '!-+,-56-JK-ab-~' 't-~!-*+-?@-VW-s'" alias uncesar="tr 't-~!-*+-?@-VW-s' '!-+,-56-JK-ab-~'" # Cifrar: cat fichero | cesar > cifrado # Descifrar: cat cifrado | uncesar > fichero NOTA: Se pueden agregar otros rangos y caracteres, recordemos que hay hasta 256 caracteres posibles con un 1 byte de información (Límite de tr). **Rango máximo empleando los 256 caracteres**: '!-þ' Ejemplo de uso con tr. tr '!-þ' 'z-þ!-y' NOTA: Al hacer uso de caracteres no imprimibles, se recomienda cifrar y descifrar a partir de ficheros (redireccionando la salida estandar). **Introducir código ASCII en Linux**. Ctrl+Shift+U: Muestra una u para que se teclee el código en hexadecimal. **Lectura recomendada sobre ofuscación simple**: [[invertir_el_orden_de_lineas_bytes_de_ficheros]]