.net 下面的aes加密,解密

 

 
        static void AesEncrypt(string toEncrypt,byte[] key, byte[] iv)
        {
            int keyArrayCount = 32, ivArrayCount = 16;
            List<byte> keyList = new List<byte>(key);
            while (keyList.Count < keyArrayCount)
            {
                keyList.Add(0x00);
            }
            while (keyList.Count > keyArrayCount)
            {
                keyList.RemoveAt(keyList.Count-1);
            }
 
            List<byte> ivList = new List<byte>(iv);
            while (ivList.Count < ivArrayCount)
            {
                ivList.Add(0x00);
            }
            while (ivList.Count > ivArrayCount)
            {
                ivList.RemoveAt(ivList.Count-1);
            }
 
 
            Console.WriteLine("使用AES加密: " + toEncrypt);
            byte[] textbyte = UTF8Encoding.UTF8.GetBytes(toEncrypt);
            Console.WriteLine("要加密的文字的16进制:{0}", BitConverter.ToString(textbyte).Replace("-", ""));
 
            System.Security.Cryptography.AesCryptoServiceProvider aes = new System.Security.Cryptography.AesCryptoServiceProvider();
            aes.Key = keyList.ToArray();
            aes.IV = ivList.ToArray();
            Console.WriteLine("Key:{0}", BitConverter.ToString(aes.Key).Replace("-", ""));
            Console.WriteLine("IV:{0}", BitConverter.ToString(aes.IV).Replace("-", ""));
            ICryptoTransform trans = aes.CreateEncryptor();
            byte[] etextbyte = trans.TransformFinalBlock(textbyte, 0, textbyte.Length);
            Console.WriteLine("加密后16进制:{0}", BitConverter.ToString(etextbyte).Replace("-", ""));
 
            trans = aes.CreateDecryptor();
            byte[] detextbyte = trans.TransformFinalBlock(etextbyte, 0, etextbyte.Length);
            Console.WriteLine("解密后的16进制:{0}", BitConverter.ToString(detextbyte).Replace("-", ""));
            Console.WriteLine("解密后的文本:{0}", Encoding.UTF8.GetString(detextbyte));
 
        }

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注