任何32位或64位散列函数?

时间:2018-05-29 11:32:51

标签: c# c#-4.0

我想在c#中创建一个方法,它将返回一个最多10-12个字符的字符串。我尝试过使用SHA1和MD5,但它们分别是160和128位,并生成32个字符的字符串,不符合我的要求。安全不是问题。我只需要一个保持唯一的小字符串

1 个答案:

答案 0 :(得分:1)

您可以将字符串(哈希)截断为所需的长度。你只会使它变弱(作为一个极端的例子,如果你将它截断为一个字节,你可能会在16个元素被哈希后发生碰撞,这要归功于birthday problem)。良好散列的每个部分与其他部分一样“好”。所以拿前x个字符/字节然后开心吧。例如,请参阅security中有关此内容的讨论。关于截断哈希的安全性有一个解释here