2011年8月24日 星期三

[.NET] C# 常用加密演算法整理(一) MD5加密






    MD5加密#region MD5加密
    /**//// <summary>
    /// MD5加密算法
    /// </summary>
    /// <param name="PassWord">待加密的字串</param>
    /// <returns>加密後的字串</returns>
    public static string MD5Encrypt(string Input)
    {
        byte[] b = Encoding.Default.GetBytes(Input);
        b = new MD5CryptoServiceProvider().ComputeHash(b);
        string ret = "";
        for (int i = 0; i < b.Length; i++)
            ret += b[i].ToString("x").PadLeft(2, '0');

        return ret;
    }

    /**//// <summary>
    /// MD5加密
    /// </summary>
    /// <param name="Half">加密是16位or32位;如果是true為16位</param>
    /// <param name="Input">待加密字串</param>
    /// <returns>加密後的字串</returns>
    public static string MD5Encrypt(string Input, bool Half)
    {
        string output = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Input, "MD5").ToLower();
        if (Half)//16位MD5加密(取32位加密的9~25字元)
            output = output.Substring(8, 16);
        return output;
    }
    #endregion

沒有留言:

張貼留言