zoukankan      html  css  js  c++  java
  • C#

    #region ===========================DES算法===================================

    private static string key = "key";
    /// <summary>
    /// 默认加密方法
    /// </summary>
    /// <param name="text"></param>
    /// <returns></returns>
    public static string DESEncrypt(string text)
    {
    return DESEncrypt(text, key);
    }
    /// <summary>
    /// DES加密方法
    /// </summary>
    /// <param name="text">明文</param>
    /// <param name="sKey">密钥</param>
    /// <returns>加密后的密文</returns>
    public static string DESEncrypt(string text,string sKey)
    {
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    byte[] inputByteArray;
    inputByteArray = Encoding.Default.GetBytes(text);
    des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
    des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    StringBuilder ret = new StringBuilder();
    foreach (byte b in ms.ToArray())
    {
    ret.AppendFormat("{0:X2}", b);
    }
    ms.Dispose();
    cs.Dispose();
    return ret.ToString();

    }
    /// <summary>
    /// DES解密方法,默认方法
    /// </summary>
    /// <param name="text">待加密明文</param>
    /// <returns>加密后的密文</returns>
    public static string DESDecrypt(string text)
    {
    return DESDecrypt(text,key);
    }
    /// <summary>
    /// DES解密方法
    /// </summary>
    /// <param name="text">密文</param>
    /// <param name="sKey">密钥</param>
    /// <returns>解密后的明文</returns>
    public static string DESDecrypt(string text,string sKey)
    {
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    int len;
    len = text.Length / 2;
    byte[] inputByteArray = new byte[len];
    int x, i;
    for (x = 0; x < len; x++)
    {
    i = Convert.ToInt32(text.Substring(x * 2, 2), 16);
    inputByteArray[x] = (byte)i;
    }
    try
    {
    des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
    des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    string estring = Encoding.Default.GetString(ms.ToArray());
    ms.Dispose();
    cs.Dispose();
    return estring;
    }
    catch
    {
    return "";
    }

    }
    #endregion

    #region ==============================MD5算法==================================
    /// <summary>
    /// 使用MD5算法求Hash散列
    /// </summary>
    /// <param name="text">明文</param>
    /// <returns>散列值</returns>
    public static string MD5Encrypt(string text)
    {
    return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(text, "MD5");
    }
    #endregion============================================================


    #region =============================SHA1==============================

    /// <summary>
    /// 使用SHA1算法求Hash散列
    /// </summary>
    /// <param name="text">明文</param>
    /// <returns>散列值</returns>
    public static string SHA1Encrypt(string text)
    {
    return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(text, "SHA1");
    }
    #endregion=============================================================

    }

    本文来自:http://www.cnblogs.com/LYshuqian/archive/2013/02/20/2919152.html

  • 相关阅读:
    小猫爬山
    方格取数
    Bash 脚本编程
    树链剖分学习笔记
    输入输出优化
    没有上司的舞会
    线性dp 之 麻烦的聚餐
    飞翔
    挖地雷
    The Prices
  • 原文地址:https://www.cnblogs.com/zhouyunbaosujina/p/3595789.html
Copyright © 2011-2022 走看看