Cryptography in the .NET Framework breaks down to the following areas:
Hashing—This involves creating a byte array that uniquely defines a set of data. For example, you can create a hash of a file. Then in the future, if you suspect that the file has changed, you can simply compare the original hash with a new hash to see if the file has been altered.
Symmetric encryption—This involves a set of data that is encrypted with a key or password and decrypted with the same key or password. This is the traditional form of encryption in which a single key unlocks the data.
Asymmetric encryption—Asymmetric encryption involves two keys: a public key and a private key. What is encrypted with one key can only be decrypted with the other. ...