C#字符串加密与解密

1.引用:

using System.Security.Cryptography;
using System.Text;

2.代码

static string encryptKey = "abcd";//字符串加密密钥(注意:密钥只能是4位)
     //字符加密如果出错 则 返回本省
 public string Encrypt(string str)
 {//加密字符串

         try
          {
              byte[] key = Encoding.Unicode.GetBytes(encryptKey);//密钥
               byte[] data = Encoding.Unicode.GetBytes(str);//待加密字符串

                 DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//加密、解密对象
           MemoryStream MStream = new MemoryStream();//内存流对象

  //用内存流实例化加密流对象
         CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key,     key),       CryptoStreamMode.Write);
            CStream.Write(data, 0, data.Length);//向加密流中写入数据
  CStream.FlushFinalBlock();//将数据压入基础流
 byte[] temp = MStream.ToArray();//从内存流中获取字节序列
 CStream.Close();//关闭加密流
  MStream.Close();//关闭内存流

 return Convert.ToBase64String(temp);//返回加密后的字符串
  }
 catch
   {
         return str;
    }
  }



  /// 字符解密
  public string Decrypt(string str)
 {//解密字符串

     try
           {
                 byte[] key = Encoding.Unicode.GetBytes(encryptKey);//密钥
                  byte[] data = Convert.FromBase64String(str);//待解密字符串

                    DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//加密、解密对象
                  MemoryStream MStream = new MemoryStream();//内存流对象

                 //用内存流实例化解密流对象
                  CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key),                                        CryptoStreamMode.Write);
                  CStream.Write(data, 0, data.Length);//向加密流中写入数据
                   CStream.FlushFinalBlock();//将数据压入基础流
                  byte[] temp = MStream.ToArray();//从内存流中获取字节序列
                     CStream.Close();//关闭加密流
                    MStream.Close();//关闭内存流

                    return Encoding.Unicode.GetString(temp);//返回解密后的字符串
                        }
           catch
           {
                    return str;
                 }
            }

参考:https://www.cnblogs.com/nb08611033/p/9183198.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值