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);
             */
        }
  • 相关阅读:
    python模块导入
    linux总结shell
    linux和shell关系
    gdb调试工具
    C语言.c和.h
    CSS cursor 属性
    html dom SetInterVal()
    css hover伪类选择器与JQuery hover()方法
    CSS 清除浮动 clear 属性
    block,inline和inline-block概念和区别
  • 原文地址:https://www.cnblogs.com/rdst/p/5131043.html
Copyright © 2011-2022 走看看