Exemplo n.º 1
0
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="input">明文字节数组</param>
        /// <param name="key">秘钥</param>
        /// <param name="iv">初始化向量</param>
        /// <returns>密文字节数组</returns>
        public static byte[] Encrypt(byte[] inputBytes, byte[] key, byte[] iv)
        {
            if (inputBytes == null || inputBytes.Length <= 0)
            {
                throw new ArgumentNullException("inputBytes");
            }
            if (key == null || key.Length <= 0)
            {
                throw new ArgumentNullException("Key");
            }

            //创建AES管理工具
            using (AesManaged myAes = CreateAesManaged(key, iv))
            {
                //创建加密算法
                var encrypt = myAes.CreateEncryptor(key, iv);
                using (MemoryStream inputStream = new MemoryStream(inputBytes))
                {
                    Stream outStream = new MemoryStream();
                    try
                    {
                        CryptoTransform.TransformByRead(inputStream, encrypt, ref outStream);

                        return((outStream as MemoryStream).ToArray());
                    }
                    finally
                    {
                        if (outStream != null)
                        {
                            outStream.Close();
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
 public static void Decryptor(Stream inputStream, byte[] key, byte[] iv, ref Stream outStream)
 {
     using (RijndaelManaged managed = CreateRijndaelManaged(key, iv))
     {
         var encryptory = managed.CreateDecryptor();
         CryptoTransform.TransformByRead(inputStream, encryptory, ref outStream);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 解密
 /// </summary>
 /// <param name="inputStream">密文输入流</param>
 /// <param name="key">秘钥</param>
 /// <param name="iv">偏移量</param>
 /// <param name="outStream">明文输出流</param>
 public static void Decryptor(Stream inputStream, byte[] key, byte[] iv, ref Stream outStream)
 {
     using (RC2CryptoServiceProvider rC2Crypto = CreateRC2CriptoService(key, iv))
     {
         var encryptor = rC2Crypto.CreateDecryptor();
         CryptoTransform.TransformByWrite(inputStream, encryptor, ref outStream);
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// 创建签名秘钥
 /// </summary>
 /// <param name="lenght">签名秘钥字节长度</param>
 /// <returns>签名Key Base64字符串</returns>
 public static String CreatedSignKey(int lenght = 32)
 {
     return(CryptoTransform.CreateKey(lenght));
     //byte[] bytes = new Byte[lenght];
     //using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
     //{
     //    rng.GetBytes(bytes);
     //    return Convert.ToBase64String(bytes);
     //}
 }
Exemplo n.º 5
0
 public static String CreateKeyNoIv()
 {
     return(CryptoTransform.CreateKey(32));
 }