欢迎莅临 SUN WU GANG 的园子!!!

世上无难事,只畏有心人。有心之人,即立志之坚午也,志坚则不畏事之不成。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  470 随笔 :: 0 文章 :: 22 评论 :: 30万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
复制代码
region 加密数据

        /// <summary> 
        /// 加密数据 
        /// 如秘钥为空 则返回原文
        /// </summary> 
        /// <param name="content">加密前文本</param> 
        /// <param name="desKey">密匙</param> 
        /// <returns></returns> 
        public static string EncryptStr(string content, string desKey)
        {
            try
            {
                if (string.IsNullOrEmpty(desKey))
                {
                    return content;
                }
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                des.Mode = CipherMode.ECB;
                var keys = new byte[8];
                if (desKey.Length < 8)
                {
                    var tmpkeys = System.Text.Encoding.UTF8.GetBytes(desKey);
                    for (int i = 0; i < keys.Length; i++)
                    {
                        if (tmpkeys.Length > i)
                            keys[i] = tmpkeys[i];
                        else
                            keys[i] = 0;
                    }
                }
                else
                    keys = System.Text.Encoding.UTF8.GetBytes(desKey.Substring(0, 8));

                des.Key = keys;
                des.IV = des.Key;
                byte[] inputByteArray = System.Text.Encoding.UTF8.GetBytes(content);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                StringBuilder sb = new StringBuilder();
                foreach (var item in ms.ToArray())
                {
                    sb.Append(item.ToString());
                    sb.Append("_");
                }
                if (sb.Length > 0)
                {
                    sb = sb.Remove(sb.Length - 1, 1);
                }
                return sb.ToString();
            }
            catch (System.Exception e)
            {
                return content;
            }
        }
        #endregion
des加密算法
复制代码
复制代码
#region 解密数据
        /// <summary> 
        /// 解密数据 
        /// 如秘钥为空 则返回原文
        /// </summary> 
        /// <param name="content">密文</param> 
        /// <param name="desKey">密匙</param> 
        /// <returns>解密失败返回空字符串</returns> 
        public static string DecryptStr(string content, string desKey)
        {
            try
            {
                if (string.IsNullOrEmpty(desKey))
                {
                    return content;
                }
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                des.Mode = CipherMode.ECB;
                var keys = new byte[8];
                if (desKey.Length < 8)
                {
                    var tmpkeys = System.Text.Encoding.UTF8.GetBytes(desKey);
                    for (int i = 0; i < keys.Length; i++)
                    {
                        if (tmpkeys.Length > i)
                            keys[i] = tmpkeys[i];
                        else
                            keys[i] = 0;
                    }
                }
                else
                    keys = System.Text.Encoding.UTF8.GetBytes(desKey.Substring(0, 8));

                des.Key = keys;
                des.IV = des.Key;
                var data = content.Split('_');
                byte[] inputByteArray = new byte[data.Length]; ;//Convert.FromBase64String(encryptText);
                for (int i = 0; i < data.Length; i++)
                {
                    inputByteArray[i] = Convert.ToByte(data[i]);
                }
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                System.Text.Encoding encoding = new System.Text.UTF8Encoding();
                return encoding.GetString(ms.ToArray());
            }
            catch (System.Exception e)
            {
                return "";
            }

        }
        #endregion
des解密算法
复制代码

 

posted on   sunwugang  阅读(55)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示