如何在.NET(url shortener)中为字符串生成URL安全校验和?

时间:2011-08-09 10:50:48

标签: c# .net

在.NET中为字符串生成 URL安全校验和的绝对最简单的方法是什么?我将使用此校验和作为查找,它将成为URL的一部分,因此需要URL安全。

如果它只为different version of .NET上的相同字符串生成相同的哈希值,那么

GetHashCode对我来说是完美的...基本上我需要的是一个url shortener我猜

2 个答案:

答案 0 :(得分:2)

创建MD5校验和(或任何其他),然后使用

  

HttpServerUtility.UrlTokenEncode

编码字符串。

---编辑以反映评论

答案 1 :(得分:0)

Base64不是网址安全的。它包括字符“+”,“=”和“/”。

SHA1(或MD5)哈希只包含字符0-9a-f,因此在没有url编码或base64的情况下是安全的。

从字符串返回40字符小写SHA1哈希的示例方法:

public static string GetSHA1Hash(string input)
{
    byte[] bytes = System.Text.Encoding.Default.GetBytes(input ?? string.Empty);
    bytes = System.Security.Cryptography.SHA1.Create().ComputeHash(bytes);
    System.Text.StringBuilder sb = new System.Text.StringBuilder(40);
    for (int i = 0, l = bytes.Length; i < l; i++)
        sb.Append(bytes[i].ToString("x2"));
    return sb.ToString();
}
相关问题