• 通用DES加密解密方法


    /// <summary>
    /// DES加密方法
    /// </summary>
    /// <param name="strPlain">明文</param>
    /// <param name="strDESKey">密钥</param>
    /// <param name="strDESIV">向量</param>
    /// <returns>密文</returns>
    public string Encrypt(string source,string _DESKey)
    {
    StringBuilder sb = new StringBuilder();
    using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
    {
    byte[] key = ASCIIEncoding.ASCII.GetBytes(_DESKey);
    byte[] iv = ASCIIEncoding.ASCII.GetBytes(_DESKey);
    byte[] dataByteArray = Encoding.UTF8.GetBytes(source);
    des.Mode = System.Security.Cryptography.CipherMode.CBC;
    des.Key = key;
    des.IV = iv;
    string encrypt = "";
    using (MemoryStream ms = new MemoryStream())
    using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
    {
    cs.Write(dataByteArray, 0, dataByteArray.Length);
    cs.FlushFinalBlock();
    //輸出資料
    foreach (byte b in ms.ToArray())
    {
    sb.AppendFormat("{0:X2}", b);
    }
    encrypt = sb.ToString();
    }
    return encrypt;
    }

    }

    /// <summary>
    /// 进行DES解密。
    /// </summary>
    /// <param name="pToDecrypt">要解密的串</param>
    /// <param name="sKey">密钥,且必须为8位。</param>
    /// <returns>已解密的字符串。</returns>
    public string Decrypt(string source, string sKey)
    {
    byte[] inputByteArray = Encoding.UTF8.GetBytes(source);
    using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
    {
    des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
    des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
    {
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    cs.Close();
    }
    string str = Encoding.UTF8.GetString(ms.ToArray());
    ms.Close();
    return str;
    }

  • 相关阅读:
    @property
    UIViewController卸载过程(ios6.0以后)
    UIViewController卸载过程(ios6.0之前)
    UIViewController启动过程
    意淫原理,还是很有意思的
    协议
    多线程理解
    内存溢出与内存泄露
    jquery:实例方法
    计划,模型
  • 原文地址:https://www.cnblogs.com/lxny/p/6760728.html
Copyright © 2020-2023  润新知