zoukankan      html  css  js  c++  java
  • AES .net 、JS 相互加密解密

    /// <summary>
        /// AES加密
        /// </summary>
        public class AES
        {
            /// <summary>
            /// 加密
            /// </summary>
            /// <param name="toEncrypt"></param>
            /// <param name="key"></param>
            /// <returns></returns>
            public static string Encrypt(string toEncrypt, string key)
            {
                byte[] keyArray = Encoding.UTF8.GetBytes(key);
                byte[] ivArray = keyArray;
                byte[] toEncryptArray = Encoding.UTF8.GetBytes(toEncrypt);
    
                try
                {
                    using (var rDel = new RijndaelManaged
                    {
                        Key = keyArray,
                        IV = ivArray,
                        Mode = CipherMode.CBC,
                        Padding = PaddingMode.Zeros
                    })
                    {
                        using (var cTransform = rDel.CreateEncryptor())
                        {
                            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
                            return Convert.ToBase64String(resultArray, 0, resultArray.Length);
                        }
                    }
                }
                catch (Exception ex)
                {
                    //log4net.LogManager.GetLogger(typeof(AES).FullName).Error(ex);
                }
    
                return null;
            }
    
            /// <summary>
            /// 解密
            /// </summary>
            /// <param name="toDecrypt"></param>
            /// <param name="key"></param>
            /// <returns></returns>
            public static string Decrypt(string toDecrypt, string key)
            {
                byte[] keyArray = Encoding.UTF8.GetBytes(key);
                byte[] ivArray = keyArray;
                byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
    
                try
                {
                    using (var rDel = new RijndaelManaged())
                    {
                        rDel.Key = keyArray;
                        rDel.IV = ivArray;
                        rDel.Mode = CipherMode.CBC;
                        rDel.Padding = PaddingMode.Zeros;
                        using (var cTransform = rDel.CreateDecryptor())
                        {
                            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
                            return Encoding.UTF8.GetString(resultArray);
                        }
                    }
                }
                catch (Exception ex)
                {
                    //log4net.LogManager.GetLogger(typeof(AES).FullName).Error(ex);
                }
    
                return null;
    
            }
    
    
            /*
             
              <script src="aes.js"></script>
              <script src="md5.js"></script>
              <script src="pad-zeropadding-min.js"></script>
             
                var data = "eVIcVEAnPZtVchn1Md85QQ==";
                var key = CryptoJS.enc.Latin1.parse('1111111111111111');
                var iv = key;
             *  解密
                var encrypted = CryptoJS.AES.decrypt(data, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });
                document.write(encrypted.toString(CryptoJS.enc.Utf8));
             *  加密
                var encrypted = CryptoJS.AES.encrypt(data, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });
                document.write(encrypted);
             */
        }
  • 相关阅读:
    leetcode Majority Element
    Missing Number 三种解法
    Effective C++学习笔记 chapter 1
    C++ 笔记
    三色排序
    归并排序-就地排序
    506,display有哪些值?说明他们的作用
    505,display,float,position之间的关系(有疑问)
    504,什么是FOUC?怎么避免
    503,display:none;与visibility:hidden;的区别
  • 原文地址:https://www.cnblogs.com/rdst/p/5131043.html
Copyright © 2011-2022 走看看