We will have an overview of Cryptography and particularly how it is implemented in .NET Framework.Cryptography is a technique for hiding information or data by transforming it.It used so that only the intended people can access it.The main idea in using cryptography is:
- Hiding the information by transforming it in such that only the intended people can read it.
- Hidden information can not be altered by intruders
Following are the main techniques used in Cryptography:
- Encryption conversion of data or information called plain text into secret information.
- Decryption conversion of encrypted data or information back to plain text.
- Hashing generating a unique string from a given string.
There are two types of useful Encryption techniques:
- private-key or symmetric encryption uses single key for encryption and decryption
- public-key encryption or asymmetric encryption uses different keys for encryption and decryption
The System.Security.Cryptography namespace is used for implementing Cryptography in .NET.
following are the asymmetric algorithms classes used in .NET:
- RSA RSACryptoServiceProvider
- DSA DSACryptoServiceProvider
Symmetric algorithm classes in .NET:
- DES DESCryptoServiceProvider
- Rijndael RijndaelManaged
- TripleDES TripleDESCryptoServiceProvider
Symmetric and Asymmetric encryption are useful in different scenarios:
- Symmetric encryption is useful for encrypting large amounts of data.Example is stream of data
- Asymmetric encryption is useful for encrypting small amounts of data.
Hashing is a technique of generating a unique string from a given string.Unlike encryption there is no way to retrieve the original string from the given input string.The advantage of hashing is that even if an intruder gets hold of the hashed string for a given string,he can not retrieve the original string from it.
In encryption if the intruder gets the encrypted string and knows the encryption algorithm and key then he can get the original input string.
In Salting a random string is added to the input string and the resulting string is hashed.This makes the hashed string more secure since random string is very difficult to guess by the intruder.
Hashing algorithm classes in .NET:
MD5 MD5 class
You can use the following online tool for simple encryption