Example #1
0
        public string Encrypt(string plainText, string saltKey)
        {
            var plainTextBytes = Encoding.UTF8.GetBytes(plainText);

            using (var bytesDerived = new Rfc2898DeriveBytes(_crypterSettings.PepperKey, Encoding.ASCII.GetBytes(saltKey)))
            {
                var keyBytes = bytesDerived.GetBytes(256 / 8);
                using (var symmetricKey = new RijndaelManaged()
                {
                    Mode = CipherMode.CBC, Padding = PaddingMode.Zeros
                })
                {
                    var encryptor = symmetricKey.CreateEncryptor(keyBytes, Encoding.ASCII.GetBytes(_crypterSettings.SecretKey));

                    byte[] cipherTextBytes;

                    using (var memoryStream = new MemoryStream())
                    {
                        using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
                        {
                            cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
                            cryptoStream.FlushFinalBlock();
                            cipherTextBytes = memoryStream.ToArray();
                            cryptoStream.Close();
                        }
                        memoryStream.Close();
                    }

                    return(ConvertUtil.BytesToString(cipherTextBytes));
                }
            }
        }