Get SHA256 Hash
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Script.Serialization; using System.Text; using System.Text.RegularExpressions; using System.Net; using System.Globalization; using System.Security.Cryptography; namespace WeBlog { public static class Utils { public static double CalculateRating(int raters, double rating, double newRating) { double calcRating = ((rating * raters) + newRating) / (raters + 1); calcRating = Math.Floor((calcRating * 2) + .5) / 2; return calcRating; } public static string GetMD5Hash(string input) { if (String.IsNullOrWhiteSpace(input)) return String.Empty; // step 1, calculate MD5 hash from input MD5 md5 = System.Security.Cryptography.MD5.Create(); byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input); byte[] hash = md5.ComputeHash(inputBytes); // step 2, convert byte array to hex string StringBuilder sb = new StringBuilder(); for (int i = 0; i < hash.Length; i++) { sb.Append(hash[i].ToString("x2")); } return sb.ToString(); } public static string GetSummary(string html, int length ) { string text = Utils.StripHtml(html); if (text.Length > length) { text = text.Substring(0, length) + " ..."; text = "\"" + text.Trim() + "\""; } return text; } public static string GetSHA256Hash(string input) { byte[] data = Encoding.UTF8.GetBytes(input); using (HashAlgorithm sha = new SHA256Managed()) { byte[] encryptedBytes = sha.TransformFinalBlock(data, 0, data.Length); return Convert.ToBase64String(sha.Hash); } } public static string RemoveIllegalCharacters(string text) { if (string.IsNullOrEmpty(text)) return text; text = text.Replace(":", string.Empty); text = text.Replace("/", string.Empty); text = text.Replace("?", string.Empty); text = text.Replace("#", string.Empty); text = text.Replace("[", string.Empty); text = text.Replace("]", string.Empty); text = text.Replace("@", string.Empty); text = text.Replace("*", string.Empty); text = text.Replace(".", string.Empty); text = text.Replace(",", string.Empty); text = text.Replace("\"", string.Empty); text = text.Replace("&", string.Empty); text = text.Replace("'", string.Empty); text = text.Replace(" ", "-"); text = RemoveDiacritics(text); text = RemoveExtraHyphen(text); return HttpUtility.UrlEncode(text).Replace("%", string.Empty); } private static string RemoveExtraHyphen(string text) { if (text.Contains("--")) { text = text.Replace("--", "-"); return RemoveExtraHyphen(text); } return text; } private static String RemoveDiacritics(string text) { String normalized = text.Normalize(NormalizationForm.FormD); StringBuilder sb = new StringBuilder(); for (int i = 0; i < normalized.Length; i++) { Char c = normalized[i]; if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark) sb.Append(c); } return sb.ToString(); } private static Regex _Regex = new Regex("<[^>]*>", RegexOptions.Compiled); /// <summary> /// Removes all HTML tags from a given string /// </summary> public static string StripHtml(string html) { if (string.IsNullOrEmpty(html)) return string.Empty; return _Regex.Replace(html, string.Empty); } public static event EventHandler<EventArgs> OnLog; public static void Log(object message) { if (OnLog != null) { OnLog(message, new EventArgs()); } } public static void Log(string methodName, Exception ex) { Log(String.Format("{0}: {1}", methodName, ex.Message)); } } }