在.NET中为字符串生成 URL安全校验和的绝对最简单的方法是什么?我将使用此校验和作为查找,它将成为URL的一部分,因此需要URL安全。
如果它只为different version of .NET上的相同字符串生成相同的哈希值,那么GetHashCode对我来说是完美的...基本上我需要的是一个url shortener我猜
答案 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();
}