zoukankan      html  css  js  c++  java
  • URL参数加密专用

    //URL参数加密专用
    
            #region ========加密========
            private static Byte[] key;
            private static Byte[] IV = new Byte[] { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
            /// <summary>
            /// 加密
            /// </summary>
            /// <param name="Text"></param>
            /// <returns></returns>
            public static string UrlEncrypt(string strToEncrypt)
            {
                return UrlEncrypt(strToEncrypt, "#!12^0#@");
            }
            /// <summary>
            /// 加密
            /// </summary>
            /// <param name="strToEncrypt">要加密的字符串</param>
            /// <param name="strEncryptKey">密钥</param>
            /// <returns>加密后的字符串</returns>
            public static string UrlEncrypt(string strToEncrypt, string strEncryptKey)
            {
                if (!string.IsNullOrEmpty(strToEncrypt))
                {
                    try
                    {
                        key = Encoding.UTF8.GetBytes(strEncryptKey.Substring(0, 8));
                        Byte[] inputByteArray = Encoding.UTF8.GetBytes(strToEncrypt);
                        DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                        MemoryStream ms = new MemoryStream();
                        CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
                        cs.Write(inputByteArray, 0, inputByteArray.Length);
                        cs.FlushFinalBlock();
                        return Convert.ToBase64String(ms.ToArray());
                    }
                    catch (Exception ex)
                    {
                        //return ex.Message;
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }
            #endregion
    
            #region ========解密========
            public static string UrlDecrypt(string strToDecrypt)
            {
                return UrlDecrypt(strToDecrypt, "#!12^0#@");
            }
            /// <summary>
            /// 解密
            /// </summary>
            /// <param name="strToDecrypt">要解密的字符串</param>
            /// <param name="strEncryptKey">密钥,必须与加密的密钥相同</param>
            /// <returns>解密后的字符串</returns>
            public static string UrlDecrypt(string strToDecrypt, string strEncryptKey)
            {
                if (!string.IsNullOrEmpty(strToDecrypt))
                {
                    strToDecrypt = strToDecrypt.Replace(" ", "+");//如果去除此部分的代码就会出现上面出现所说的情况,出错或者解密出来的数据变成空值。
                    try
                    {
                        key = Encoding.UTF8.GetBytes(strEncryptKey.Substring(0, 8));
                        Byte[] inputByteArray = Convert.FromBase64String(strToDecrypt);
                        DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                        MemoryStream ms = new MemoryStream();
                        CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
                        cs.Write(inputByteArray, 0, inputByteArray.Length);
                        cs.FlushFinalBlock();
                        return Encoding.UTF8.GetString(ms.ToArray());
                    }
                    catch (Exception ex)
                    {
                        //return ex.Message;
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }
            #endregion
    

      

  • 相关阅读:
    穿越之我是码农 1024 篇
    误删文件机房停电黑客入侵_你最怕什么?
    AI觉醒进行时:程序员你怕了吗?
    未来已来!阿里小蜜AI技术揭秘
    千人千面智能淘宝店铺背后的算法研究登陆人工智能顶级会议AAAI 2017
    CDN缓存不命中排查
    现实需求巨大_技术尚未成熟_学界与业界思维大碰撞
    围观阿里云最会赚钱的人!价值2万元邀请码不限量发送
    今晚19:30直播阿里巴巴大规模持续集成的技术演进之路_欢迎免费观看
    工作压力山大?码农这么减压最有效
  • 原文地址:https://www.cnblogs.com/sntetwt/p/2744737.html
Copyright © 2011-2022 走看看