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. (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