加密方法

public class FormatStr
    {
        #region MD5加密
        /// <summary>
        /// MD5加密操作
        /// </summary>
        /// <param name="str">加密的字符串</param>
        /// <returns></returns>
        public static string MD5(string str) { 
          return  System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5");
        }
        #endregion 

        #region 去除HTML标记
        /// <summary>
        /// 去除HTML标记
        /// </summary>
        /// <param name="NoHTML">包括HTML的源码 </param>
        /// <returns>已经去除后的文字</returns>
        public static string NoHTML(string Htmlstring)
        {
            //删除脚本
            Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
            //删除HTML
            Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);

            Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);

            Htmlstring.Replace("<", "");
            Htmlstring.Replace(">", "");
            Htmlstring.Replace("\r\n", "");
            Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();

            return Htmlstring;
        }
        #endregion  

        #region 去除非法字串
        /// <summary>
        /// 去除非法字串
        /// </summary>
        /// <param name="strChar">原字串</param>
        /// <returns>过滤过的字串</returns>
        public static string ReplaceBadChar(string strChar)
        {
            if (strChar.Trim() == "")
            {
                return "";
            }
            else
            {
                strChar = strChar.Replace("'", "");
                strChar = strChar.Replace("*", "");
                strChar = strChar.Replace("?", "");
                strChar = strChar.Replace("(", "");
                strChar = strChar.Replace(")", "");
                strChar = strChar.Replace("<", "");
                strChar = strChar.Replace("=", "");
                return strChar.Trim();
            }
        }
        #endregion

        #region 检察是否都是数字
        /// <summary>
        /// 检察是否都是数字
        /// </summary>
        /// <param name="str">要检查的字串</param>
        /// <returns>bool</returns>
        public static bool IsNumeric(string str)
        {
            Regex reg = new Regex(@"^[+]?\d*$");
            return reg.IsMatch(str);
        }
        #endregion

        #region 检察是否正确的Email格式
        /// <summary>
        /// 检察是否正确的Email格式
        /// </summary>
        /// <param name="str">要检查的字串</param>
        /// <returns>bool</returns>
        public static bool IsEmail(string str)
        {
            Regex reg = new Regex(@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
            return reg.IsMatch(str);
        }
        #endregion

        #region 检察是否正确的日期格式
        /// <summary>
        /// 检察是否正确的日期格式
        /// </summary>
        /// <param name="str">要检查的字串</param>
        /// <returns>bool</returns>
        public static bool IsDate(string str)
        {
            //考虑到了4年一度的366天,还有特殊的2月的日期
            Regex reg = new Regex(@"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$");
            return reg.IsMatch(str);
        }
        #endregion

        #region HTML转换为字符串
        /// <summary>
        /// HTML转换为字符串,转换标识
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string htmToStr(string str)
        {
            return str.Replace("\'", "mySQ;").Replace("\"", "myDQ;").Replace("<", "myLt;").Replace(">", "myGt;").Replace("-", "myMl;").Replace("_", "myBl;").Replace("%", "myBs;").Replace("?", "myQe;").Replace("*", "myAl;");
        }
        #endregion

        #region 字符串转换为HTML
        /// <summary>
        /// 字符串转换为HTML,将还原标识
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string strToHtm(string str)
        {
            if (str == null) return "";
            return str.Replace("mySQ;", "\'").Replace("myDQ;", "\"").Replace("myLt;", "<").Replace("myGt;", ">").Replace("myMl;", "-").Replace("myBl;", "_").Replace("myBs;", "%").Replace("myQe;", "?").Replace("myAl;", "*");
        }
        #endregion

        #region 文本转换为HTML
        /// <summary>
        /// 文本转换为HTML,更换(\n)
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string textToHtm(string str)
        {
            return str.Replace("\t", "    ").Replace("<", "<").Replace(">", ">").Replace(" ", " ").Replace("\r\n", "<br>").Replace("\n", "<br>");
        }
        #endregion

        #region 文本转换为输入框内容
        /// <summary>
        /// 文本转换为输入框内容,
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string HtmToInputValue(string str)
        {
            //return str.Replace("<","<").Replace(">",">").Replace("\"",""").Replace("&","&");
            return str.Replace("\"", """);
        }
        #endregion

        #region 防Sql注入攻击
        /// <summary>
        /// 防Sql注入攻击
        /// </summary>
        /// <param name="strQueryName"></param>
        /// <returns></returns>
        public static string getQueryString(string strQueryName)
        {
            //(')(--)(or )(=)
            System.Web.HttpRequest myRequest = System.Web.HttpContext.Current.Request;
            string str1 = myRequest.QueryString[strQueryName];
            if (str1 == null) return "";
            str1 = str1.Replace("'", "’").Replace("--", "—").Replace("=", "=").Replace("or", "o r").Replace("Or", "O r").Replace("OR", "O R").Replace("oR", "o R").Replace(">", "〉").Replace("<", "〈");
            return str1;
        }
        #endregion

        #region 防Sql注入攻击
        /// <summary>
        /// 防Sql注入攻击
        /// </summary>
        /// <param name="strQueryName"></param>
        /// <returns></returns>
        public static string getSQLString(string strQueryName)
        {
            if (strQueryName == null) return "";
            strQueryName = strQueryName.Replace("'", "’").Replace("--", "—").Replace("=", "=").Replace("or", "o r").Replace("Or", "O r").Replace("OR", "O R").Replace("oR", "o R").Replace(">", "〉").Replace("<", "〈");
            return strQueryName;
        }
        #endregion
    }
posted @ 2012-01-29 17:34  Chaoa  阅读(239)  评论(0编辑  收藏  举报