Encrypt and decrypt are very important data with C# play. For security purpose, we are storing some valuable things in Encrypt format.
I have two code examples that I wrote for best practices encrypting a string and second is again Decrypt the value.
Microsoft has a simple method to convert string in Encrypt and Decrypt at any time.
Encrypt and Decrypt Simple Method
- string encryptedString = SomeStaticClass.Encrypt(sourceString);
-
- string decryptedString = SomeStaticClass.Decrypt(encryptedString);
To use the code sample, you can copy the CryptorEngine to your project and start playing or copy method bodies and paste to your application projects.
I wrote a class to access the Encrypt and Decrypt Method. because I wanted to use this method at many places. And this made my programming simple.
Encrypt and Decrypt Using Class
- public string DecryptString(string encrString)
- {
- byte[] b;
- string decrypted;
- try
- {
- b = Convert.FromBase64String(encrString);
- decrypted = System.Text.ASCIIEncoding.ASCII.GetString(b);
- }
- catch (FormatException fe)
- {
- decrypted = "";
- }
- return decrypted;
- }
-
- public string EnryptString(string strEncrypted)
- {
- byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes(strEncrypted);
- string encrypted = Convert.ToBase64String(b);
- return encrypted;
- }
Still The above code is not enough for me because I want to do something with my choice. Then I had implemented the code with specify charter to use in Encrypt method. I have created two method class.
Encrypt and Decrypt with Character Choice
- public string encrypt(string encryptString)
- {
- string EncryptionKey = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- byte[] clearBytes = Encoding.Unicode.GetBytes(encryptString);
- using(Aes encryptor = Aes.Create())
- {
- Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] {
- 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76
- });
- encryptor.Key = pdb.GetBytes(32);
- encryptor.IV = pdb.GetBytes(16);
- using(MemoryStream ms = new MemoryStream())
- {
- using(CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write)) {
- cs.Write(clearBytes, 0, clearBytes.Length);
- cs.Close();
- }
- encryptString = Convert.ToBase64String(ms.ToArray());
- }
- }
- return encryptString;
- }
-
- public string Decrypt(string cipherText)
- {
- string EncryptionKey = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- cipherText = cipherText.Replace(" ", "+");
- byte[] cipherBytes = Convert.FromBase64String(cipherText);
- using(Aes encryptor = Aes.Create())
- {
- Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] {
- 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76
- });
- encryptor.Key = pdb.GetBytes(32);
- encryptor.IV = pdb.GetBytes(16);
- using(MemoryStream ms = new MemoryStream())
- {
- using(CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write)) {
- cs.Write(cipherBytes, 0, cipherBytes.Length);
- cs.Close();
- }
- cipherText = Encoding.Unicode.GetString(ms.ToArray());
- }
- }
- return cipherText;
- }
At last the above code is totally perfect to make such a good application and now I'm filling good because I did what I want.
Thanks for more code visit stupidcodes.com