Wednesday, April 13, 2022

ASP.NET Encryption Encryption.cs

 Create Folder App_Code/Utility/Encryption.cs


#region XD World Recipe V 3

// FileName: Encryption.cs

// Author: Dexter Zafra

// Date Created: 3/20/2009

// Website: www.ex-designz.net

#endregion

using System;

using System.Collections.Generic;

using System.Text;

using System.Security;

using System.Security.Cryptography;

using System.Web.Services;

using System.IO;


namespace  LuminousSecurity

{

    /// <summary>

    /// Peforms username and password encryption in cookie, session and database.

    /// </summary>

    public static class Encryption

    {

      

        public static string EncryptData(string Message, string passphrase)

        {

            byte[] Results;

            System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();

            MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();

            byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(passphrase));

            TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();

            TDESAlgorithm.Key = TDESKey;

            TDESAlgorithm.Mode = CipherMode.ECB;

            TDESAlgorithm.Padding = PaddingMode.PKCS7;

            byte[] DataToEncrypt = UTF8.GetBytes(Message);

            try

            {

                ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor();

                Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length);

            }

            finally

            {

                TDESAlgorithm.Clear();

                HashProvider.Clear();

            }

            return Convert.ToBase64String(Results);

        }




        public static string DecryptString(string Message, string passphrase)

        {

            byte[] Results;

            System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();

            MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();

            byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(passphrase));

            TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();

            TDESAlgorithm.Key = TDESKey;

            TDESAlgorithm.Mode = CipherMode.ECB;

            TDESAlgorithm.Padding = PaddingMode.PKCS7;

            byte[] DataToDecrypt = Convert.FromBase64String(Message);

            try

            {

                ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor();

                Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length);

            }

            finally

            {

                TDESAlgorithm.Clear();

                HashProvider.Clear();

            }

            return UTF8.GetString(Results);

        }




        public static string Encrypt(string clearText)

        {

            try

            {

                string EncryptionKey = "thakur86@hotmail.com";

                byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);

                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();

                        }

                        clearText = Convert.ToBase64String(ms.ToArray());

                    }

                }

            }

            catch

            {

                throw new ApplicationException("Input DataError");

            }

            finally

            {


            }

            return clearText;

        }


        public static string Decrypt(string cipherText)

        {

            string EncryptionKey = "thakur86@hotmail.com";

            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;

        }


        



    }


    public class Secure

    {

        public static string SecureString(string TexttoValidate)

        {

            string TextVal;


            TextVal = TexttoValidate;

            try

            {


                //Build an array of characters that need to be filter.

                string[] strDirtyQueryString = { "xp_", ";", "--", "<", ">", "script", "iframe", "delete", "drop", "exec" };


                //Loop through all items in the array

                foreach (string item in strDirtyQueryString)

                {

                    if (TextVal.IndexOf(item) != -1)

                    {

                        //PageRedirect(1);//Redirect to page not found.

                        break;

                    }

                }

            }

            catch (Exception ee)

            {

                ExceptionHandler.WriteException(ee.Message);

            }


            return TextVal;

        }

    }

}


No comments:

Post a Comment