• C# DES加密解密


    DES全称为Data EncryptionStandard,即数据加密标准。Des加密算法 是一种对称加密算法。

    对称加密: 对明文的加密 和 对密文的解密 使用的是同一个密钥

    密钥:加密时的密钥 和 解密时的密钥要一致,不然会报错

    private static string keys = "lz123456"; //自己随便设置就行了

    加密代码:

    /// <summary>
    /// DES加密
    /// </summary>
    /// <param name="str">需要加密的明文</param>
    /// <param name="sKey">密匙</param>
    /// <returns></returns>
    private string Encrypt(string str, string sKey)
    {
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    byte[] inputByteArray = Encoding.Default.GetBytes(str);
    des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);// 密匙
    des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);// 初始化向量
    MemoryStream ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    var retB = Convert.ToBase64String(ms.ToArray());
    return retB;
    }

    解密代码:

    /// <summary>
    /// DES解密
    /// </summary>
    /// <param name="pToDecrypt">需要解密的密文</param>
    /// <param name="sKey">密匙</param>
    /// <returns></returns>
    private string Decrypt(string pToDecrypt, string sKey)
    {
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);
    des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
    des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
    MemoryStream ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    // 如果两次密匙不一样,这一步可能会引发异常
    cs.FlushFinalBlock();
    return System.Text.Encoding.Default.GetString(ms.ToArray());
    }


  • 相关阅读:
    软件界面不是艺术作品
    关于c# winForm窗体最大化的设置
    表单中的重置与取消按钮
    一个汉字=2个英文字符么?我肤浅的这么认为。
    Linux在ASCII终端下显示彩色字体
    地震勘探原理名词解释
    Linux终端使用小技巧
    8个实用而有趣Bash命令提示行
    用ps改变图片分辨率,但是不改变图片大小,上一篇不大适用。
    禁用Win7自动更新后的重启提示
  • 原文地址:https://www.cnblogs.com/liuzheng0612/p/11864989.html
Copyright © 2020-2023  润新知