Пример #1
0
        private static EncryptedSymmetric EncryptSymmetric(string message)
        {
            EncryptedSymmetric encrypted;

            using (var symmetric = CryptHandler.CreateSymmetric())
            {
                symmetric.GenerateIV();
                symmetric.GenerateKey();

                using (var ms = new System.IO.MemoryStream())
                {
                    using (var cs = new CryptoStream(ms, symmetric.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        using (var writer = new StreamWriter(cs, CryptHandler.Encoding))
                        {
                            writer.Write(message);
                        }
                    }

                    encrypted = new EncryptedSymmetric()
                    {
                        Name      = symmetric.GetType().BaseType.Name,
                        IV        = symmetric.IV,
                        Key       = symmetric.Key,
                        Encrypted = ms.ToArray()
                    };
                }
                symmetric.Clear();
            }
            return(encrypted);
        }
Пример #2
0
        private static string DecryptSymmetric(byte[] message, byte[] iv, byte[] key)
        {
            var plainText = "";

            using (var symmetric = CryptHandler.CreateSymmetric())
            {
                using (var ms = new System.IO.MemoryStream(message))
                {
                    using (var cs = new CryptoStream(ms, symmetric.CreateDecryptor(key, iv), CryptoStreamMode.Read))
                    {
                        using (var reader = new StreamReader(cs, CryptHandler.Encoding))
                        {
                            plainText = reader.ReadToEnd();
                            reader.Close();
                        }
                    }
                }
                symmetric.Clear();
            }

            return(plainText);
        }