===== 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]]