public static string UrlHash(this string url)
{
url = url.Trim();
if (url.EndsWith("/", System.StringComparison.Ordinal) && url != "/")
{
url = url.TrimEnd('/');
url = url.Trim();
}
url = url.ToLowerInvariant();
var md5 = MD5.Create();
var inputBytes = Encoding.Unicode.GetBytes(url);
var hash = md5.ComputeHash(inputBytes);
var result = new StringBuilder();
foreach (var b in hash)
{
result.Append(b.ToString("x2").ToLower());
}
return result.ToString();
}