示例#1
0
 /// <summary>
 /// Encrypts plainText value with IV and returns encrypted string
 /// </summary>
 public string Encrypt(string plainText, string iv)
 {
     try
     {
         if (!singleKeyManager)
         {
             throw new InvalidOperationException("This instance of EncryptionManager was expecting parameter of ticks");
         }
         if (AESManager == null)
         {
             AESManager = new AesManaged();
         }
         var    encryptor = AESManager.CreateEncryptor(AESManager.Key, Convert.FromBase64String(iv));
         byte[] encrypted;
         //byte[] data = Encoding.UTF8.GetBytes(plainText);
         using (MemoryStream ms = new MemoryStream())
         {
             using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
             {
                 using (StreamWriter sw = new StreamWriter(cs))
                 {
                     sw.Write(plainText);
                 }
                 encrypted = ms.ToArray();
             }
         }
         return(Convert.ToBase64String(encrypted));
     }
     catch (Exception ex)
     {
         Debug.WriteLine(ex);
         throw ex;
     }
 }
示例#2
0
        /// <summary>
        /// Encrypts plainBytes value with IV and ticks and returns encrypted bytes
        /// </summary>
        public byte[] Encrypt(byte[] plainBytes, byte[] iv, long ticks)
        {
            try
            {
                if (singleKeyManager)
                {
                    throw new InvalidOperationException("This instance of EncryptionManager was not expecting parameter of ticks. Use constructor with a, b and c instead.");
                }
                if (AESManager == null)
                {
                    AESManager = new AesManaged();
                }
                Random random;
                if (ticks % 2 == 0)
                {
                    random = new Random(BaseEvenIntKey + (int)(ticks % 1000000000));
                }
                else
                {
                    random = new Random(BaseOddIntKey + (int)(ticks % 1000000000));
                }
                byte[] bytes = new byte[32];
                random.NextBytes(bytes);
                AESManager.Key = bytes;
                var    encryptor = AESManager.CreateEncryptor(AESManager.Key, iv);
                byte[] encrypted;

                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                    {
                        using (StreamWriter sw = new StreamWriter(cs))
                        {
                            sw.Write(plainBytes);
                        }
                        encrypted = ms.ToArray();
                    }
                }
                return(encrypted);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                throw ex;
            }
        }