Click See Inside to learn how to use this module. Rewrote from the ground up based on my AES encryption modules. This new version uses a lot less variables. (All of the non-constant variables and lists are visible on the screen) The module is a compilation of 3 branches of cryptography. Encryption, random number generation, and cryptographic hashing. I'll explain these in more detail below, but first, a warning. PLEASE NOTE: This module was not created professionally. There are probably security holes. Don't use this for important things like passwords. Now to continue. First, encryption is the practice of using some key to convert text into an unrecognizable format that only people with the same key can read. The encryption for this module uses AES_128_OFB. Keys are limited to 128 bits, because implementing 192 and 256 bits in addition to 128 bits would have taken a lot longer, and this project is already days in the making. Next, a cryptographic hash function is a function that takes text and, like encryption, outputs something unrecognizable. The difference from encryption, however, is that it always outputs the same length as a result, and it is impossible ("computationally infeasible") to reverse. This can be used for converting a password into a usable encryption key. Lastly, a random number generator is a function that simply outputs random numbers. A cryptographic random number generator is a function that generates random numbers in a way that it is impossible (again, "computationally infeasible") to predict the next number. This can be used to generate random encryption keys, rather than generate one from a password.