DES加密解密

嗯~还是今天在测试发布情况的时候,因为除了一些问题,可以肯定是配置文件出了问题,所以就去研究了一下配置文件,不看不知道,一看就看到了知识点。那就是DES加密技术。


概念:

DES对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码),是一种对称加密算法


使用的地方:


具体代码:

首先加密代码如下:

//加密代码
public static string Encrypt(string sourceString, string key, string iv)
{
   try
   {
      byte[] btKey = Encoding.UTF8.GetBytes(key);
      byte[] btIV = Encoding.UTF8.GetBytes(iv);
      DESCryptoServiceProvider des = new DESCryptoServiceProvider();

      using (MemoryStream ms = new MemoryStream())
      {
          byte[] inData = Encoding.UTF8.GetBytes(sourceString);
          try
          {
             using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
             {
                 cs.Write(inData, 0, inData.Length);
                 cs.FlushFinalBlock();
             }
              return Convert.ToBase64String(ms.ToArray());
           }
           catch
           {
             return sourceString;
           }
        }
      }
      catch { }

     return "DES加密出错";
} 

接下来解密代码:

//解密代码
public static string Decrypt(string encryptedString, string key, string iv)
{
    byte[] btKey = Encoding.UTF8.GetBytes(key);
    byte[] btIV = Encoding.UTF8.GetBytes(iv);
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();

    using (MemoryStream ms = new MemoryStream())
    {
        byte[] inData = Convert.FromBase64String(encryptedString);
        try
        {
            using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write))
            {
                cs.Write(inData, 0, inData.Length);
                cs.FlushFinalBlock();
            }

            return Encoding.UTF8.GetString(ms.ToArray());
        }
        catch
        {
            return encryptedString;
        }
    }
}

总结:

要多去探索,不经意遇到小技术。 

 

 

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

new_repo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值