256位AES加密和解密

 1  /// <summary>  
 2         /// 256位AES加密  
 3         /// </summary>  
 4         /// <param name="toEncrypt"></param>  
 5         /// <returns></returns> 
 6         public static string Encrypt(string toEncrypt, string skey, string IV)
 7         {
 8             //256-AES key      
 9             //byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678123456781234567812345678");
10             byte[] keyArray = UTF8Encoding.UTF8.GetBytes(skey);
11             byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
12             byte[] ivArray = UTF8Encoding.UTF8.GetBytes(IV);//1234567812345678
13 
14             RijndaelManaged rDel = new RijndaelManaged();
15             rDel.Key = keyArray;
16             rDel.Mode = CipherMode.CBC;
17             rDel.Padding = PaddingMode.PKCS7;
18             rDel.IV = ivArray;
19 
20             ICryptoTransform cTransform = rDel.CreateEncryptor();
21             byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
22 
23             return Convert.ToBase64String(resultArray, 0, resultArray.Length);
24         }
 /// <summary>  
        /// 256位AES解密  
        /// </summary>  
        /// <param name="toDecrypt"></param>  
        /// <returns></returns>  
        public static string Decrypt(string toDecrypt, string skey, string IV)
        {
            //256-AES key
            //byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678123456781234567812345678");
            byte[] keyArray = UTF8Encoding.UTF8.GetBytes(skey);
            byte[] toDecryptArray = Convert.FromBase64String(toDecrypt);
            byte[] ivArray = UTF8Encoding.UTF8.GetBytes(IV); //1234567812345678

            RijndaelManaged rDel = new RijndaelManaged();
            rDel.Key = keyArray;
            rDel.Mode = CipherMode.CBC;
            rDel.Padding = PaddingMode.PKCS7;
            rDel.IV = ivArray;

            ICryptoTransform cTransform = rDel.CreateDecryptor();
            byte[] resultArray = cTransform.TransformFinalBlock(toDecryptArray, 0, toDecryptArray.Length);

            return UTF8Encoding.UTF8.GetString(resultArray);
        }

 

转载于:https://www.cnblogs.com/ZkbFighting/p/11195337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值