Después de ver cómo se descifra al César en Python, me he encontrado con un par de maneras elegantes de hacerlo desde Bash.
Cifrado César
Con tr
:
$ echo "lorem ipsum dolor sit amet" | tr 'a-z' 'd-za-c'
oruhp lsvxp groru vlw dphw
$ echo "oruhp lsvxp groru vlw dphw" | tr 'd-za-c' 'a-z'
lorem ipsum dolor sit amet
Con sed
también se puede conseguir, aunque es bastante más laborioso:
$ echo "lorem ipsum dolor sit amet" | sed -e "y/abcdefghijklmnopqrstuvwxyz/defghijklmnopqrstuvwxyzabc/"
oruhp lsvxp groru vlw dphw
$ echo "oruhp lsvxp groru vlw dphw" | sed -e "y/abcdefghijklmnopqrstuvwxyz/defghijklmnopqrstuvwxyzabc/"
lorem ipsum dolor sit amet
ROT13
Con tr
:
$ echo "lorem ipsum dolor sit amet" | tr 'a-zA-Z' 'n-za-mN-ZA-M'
yberz vcfhz qbybe fvg nzrg
$ echo "yberz vcfhz qbybe fvg nzrg" | tr 'n-za-mN-ZA-M' 'a-zA-Z'
lorem ipsum dolor sit amet
Por supuesto, con rot13
, incluido en el paquete bsdgames
:
$ rot13 "lorem ipsum dolor sit amet"
yberz vcfhz qbybe fvg nzrg
$ rot13 "yberz vcfhz qbybe fvg nzrg"
lorem ipsum dolor sit amet
ROT47
Con tr
:
$ echo "lorem ipsum dolor sit amet" | tr '!-~' 'P-~!-O'
=@C6> :ADF> 5@=@C D:E 2>6E
$ echo "=@C6> :ADF> 5@=@C D:E 2>6E" | tr 'P-~!-O' '!-~'
lorem ipsum dolor sit amet