Crypto jargon
In this chapter, I will be using information security industry terms to refer to things. It's probably best I gave a quick explanation as follows:
Encoding is taking input and outputting it in another form. The process is entirely reversible.
Encryption is taking input and making it entirely unreadable. Without extra information, even the knowledge of an encryption algorithm is useless.
Hashing is taking input and creating a fixed, non-reversible value for the purposes of comparison. The idea is that if a database is compromised, only the hashed values are lost.
A substitution cipher is a primitive form of encoding that replaces characters with fixed values. This can be through a variety of methods, the most of common of which is a straight substitution where symbols or characters are used in lieu of standard western letters.
A transposition cipher is another primitive form of encoding where characters are shifted through the alphabet to take on different characters. For example...