Last active
October 27, 2024 12:28
-
-
Save IQAndreas/030b8e91a8d9a407caa6 to your computer and use it in GitHub Desktop.
A really simple Caesar Cipher in Bash (or Shell) using `tr`, can also easily be adjusted to encrypt/decrypt ROT13 instead.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Caesar cipher encoding | |
echo "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG" | tr '[A-Z]' '[X-ZA-W]' | |
# output: QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD | |
# Caesar cipher decoding | |
echo "QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD" | tr '[X-ZA-W]' '[A-Z]' | |
# output: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG | |
# Can also be adjusted to ROT13 instead | |
echo "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG" | tr '[A-Z]' '[N-ZA-M]' | |
# output: GUR DHVPX OEBJA SBK WHZCF BIRE GUR YNML QBT | |
echo "GUR DHVPX OEBJA SBK WHZCF BIRE GUR YNML QBT" | tr '[N-ZA-M]' '[A-Z]' | |
# output: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG | |
# Case-sensitive version of ROT13 | |
tr '[A-Za-z]' '[N-ZA-Mn-za-m]' |
The Caesar Cipher shifts plaintext three letters to the left to create ciphertext.
In this case, tr '[A-Z]' '[X-ZA-W]', tr translates all occurrences of 'A' to 'X', 'B' to 'Y', 'C' to 'Z', 'D' to 'A', etc.
[X-ZA-W] just means that your output starts with the letter X and continues through the letter Z, then continues with the letter A through the letter W. You could also use [XYZABCDEFGHIJKLMNOPQRSTUVW] instead but tr understands the hyphen '-' to mean 'through'.
Thank you so much. Really helped me in understanding.
so simple and elegant just like it was supposed to be, well done
I came here from a google-search. Thanks for sharing this. However, the brackets are superfluous and the invocation can thus be tr 'A-Za-z' 'X-ZA-Wx-za-w'
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank you🤘🏼