public static string Encrypt(string plainText, string passPhrase)
    {
        string base64String;

        byte[] numArray  = StringCipher.Generate256BitsOfRandomEntropy();
        byte[] numArray1 = StringCipher.Generate256BitsOfRandomEntropy();
        byte[] bytes     = Encoding.UTF8.GetBytes(plainText);
        byte[] bytes1    = (new Rfc2898DeriveBytes(passPhrase, numArray, 1000)).GetBytes(32);
        using (RijndaelManaged rijndaelManaged = new RijndaelManaged())
        {
            rijndaelManaged.BlockSize = 256;
            rijndaelManaged.Mode      = CipherMode.CBC;
            rijndaelManaged.Padding   = PaddingMode.PKCS7;
            using (ICryptoTransform cryptoTransform = rijndaelManaged.CreateEncryptor(bytes1, numArray1))
            {
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoTransform, CryptoStreamMode.Write))
                    {
                        cryptoStream.Write(bytes, 0, (int)bytes.Length);
                        cryptoStream.FlushFinalBlock();
                        byte[] array = numArray.Concat <byte>(numArray1).ToArray <byte>();
                        array = array.Concat <byte>(memoryStream.ToArray()).ToArray <byte>();
                        memoryStream.Close();
                        cryptoStream.Close();
                        base64String = Convert.ToBase64String(array);
                    }
                }
            }
        }
        return(base64String);
    }