c# 使用DES加密和解密字符串

/// <summary>
       /// 使用DES加密字符串
       /// </summary>
       /// <param name="stringToEncrypt">待加密字符串</param>
       /// <param name="strKEY">8位字符加密密钥</param>
       /// <returns></returns>
        public static string EncryptStringByDES(string stringToEncrypt,string KEY)
        {
            if (string.IsNullOrEmpty(KEY)||Encoding.UTF8.GetBytes(KEY).Length!=8)
                KEY = "$Ap1bi$.";
            byte[] key = { };
            byte[] IV = { 0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78 };
            try
            {
                key = Encoding.UTF8.GetBytes(KEY);
                using (DESCryptoServiceProvider oDESCrypto = new DESCryptoServiceProvider())
                {
                    byte[] inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
                    MemoryStream oMemoryStream = new MemoryStream();
                    CryptoStream oCryptoStream = new CryptoStream(oMemoryStream,
                    oDESCrypto.CreateEncryptor(key, IV), CryptoStreamMode.Write);
                    oCryptoStream.Write(inputByteArray, 0, inputByteArray.Length);
                    oCryptoStream.FlushFinalBlock();
                    return Convert.ToBase64String(oMemoryStream.ToArray());
                }
            }
            catch (Exception ex)
            {
 
                throw ex;
            }
        }
 
       /// <summary>
       /// 使用DES解密字符串
       /// </summary>
       /// <param name="stringToDecrypt">待解密字符串</param>
        /// <param name="strKEY">8位字符解密密钥</param>
       /// <returns></returns>
        public static string DecryptStringByDES(string stringToDecrypt, string KEY)
        {
            if (string.IsNullOrEmpty(KEY) || Encoding.UTF8.GetBytes(KEY).Length != 8)
                KEY = "$Apa1i$.";
            byte[] key = { };
            byte[] IV = { 0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78 };
            stringToDecrypt = stringToDecrypt.Replace(" ", "+");
            byte[] inputByteArray = new byte[stringToDecrypt.Length];
 
 
            try
            {
                key = Encoding.UTF8.GetBytes(KEY);
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                inputByteArray = Convert.FromBase64String(stringToDecrypt);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                Encoding encoding = Encoding.UTF8;
                return encoding.GetString(ms.ToArray());
            }
            catch (Exception ex)
            {
 
                throw ex;
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值