Encoding is often confused with encryption and hashing, but they are not the same. All three transform data into another format. Both encoding and encryption are reversible, and hashing is not.
The purpose of encoding is to transform data so that it can be properly (and safely) consumed by a different type of system, e.g. binary data being displayed to human, or being sent over email. The goal is not to keep information secret, but rather to ensure that it’s able to be properly consumed.
The purpose of encryption is to transform data in order to keep it secret from others, e.g. sending someone a secret letter that only they should be able to read, or securely sending a password over the Internet. Encryption transforms data into another format in such a way that only specific individual(s) can reverse the transformation. It uses a key, which is kept secret, in conjunction with the plaintext and the algorithm, in order to perform the encryption operation.
Unlike encoding and encryption - hashing is not reversible process, it will tale arbitrary input and produce fixed-length result, so same input always produce the same output. Additionally, any modification of a given input should result in drastic change to the hash.
Use EEncoding unit for encoding, EEncrypt unit for encryption, EHash unit for hasing, ESignature unit for reading certificate info from executables.