.net core和.net framework 里AES加解密的差异

.net core出来后,在一些功能上有了很大的差别,以此随笔记录所用的到的一些方法的差别所在 

引用:System.Security.Cryptography; 
        /// <summary>

        /// AES加密
        /// </summary>
        /// <param name="toEncrypt">要加密的明文</param>
        /// <param name="key">密钥</param>
        /// <param name="iv">向量</param>
        /// <returns></returns>
        public static string Encrypt(string toEncrypt, string key)
        {
            try
            {
                byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
                byte[] ivArray = UTF8Encoding.UTF8.GetBytes(key);
                byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
 
                var rDel = Aes.Create();//Core
                RijndaelManaged rDel = new RijndaelManaged(); //framework
                rDel.Key = keyArray;
                rDel.IV = ivArray;//向量 
                rDel.Mode = CipherMode.CBC;
                rDel.Padding = PaddingMode.PKCS7;
 
                ICryptoTransform cTransform = rDel.CreateEncryptor();
                byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
 
                return Convert.ToBase64String(resultArray, 0, resultArray.Length);
            }
            catch (Exception ex)
            {
                return "";
            }
 
        }

        /// <summary>
        /// AES解密
        /// </summary>
        /// <param name="toDecrypt">要解密的密文</param>
        /// <param name="key">密钥</param>
        /// <param name="iv">向量</param>
        /// <returns></returns>        
        public static string Decrypt(string toDecrypt, string key)
        {
            try
            {
                byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
                byte[] ivArray = UTF8Encoding.UTF8.GetBytes(key);
                byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
 
                var rDel = Aes.Create();//Core
                RijndaelManaged rDel = new RijndaelManaged(); //framework
                rDel.Key = keyArray;
                rDel.IV = ivArray;//向量
                rDel.Mode = CipherMode.CBC;
                rDel.Padding = PaddingMode.PKCS7;
 
                ICryptoTransform cTransform = rDel.CreateDecryptor();
                byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
 
                return UTF8Encoding.UTF8.GetString(resultArray);
            }
            catch (Exception ex)
            {
                return "";
            }
 
        }

posted on 2017-08-11 13:59  人生如茶亦如云  阅读(498)  评论(0编辑  收藏  举报

导航