这个问题不需要任何代码,它只是关于MD5哈希的一个概念性的事情。
我的应用管理用户社区。 p>
我使用MD5哈希将任意长度的用户昵称减少为哈希值。 我希望每个昵称的MD5不同,因为这个MD5(nick)
将成为每个用户的用户ID。
这总是如此吗?我确定我错过了一些东西,从长远来看可能会发生碰撞(数百万用户=数百万不同长度的不同缺口)
答案 0 :(得分:0)
随机数据(例如用户名)的MD5冲突非常罕见,您可能永远不会看到它们。问题是MD5在抗冲突性方面已被破坏,因此攻击者可以轻松生成一对具有相同哈希值的用户名,无论您的设计具有何种安全和/或功能含义。
在您的情况下生成短标识符的常用方法是简单地将每个用户名与帐户数据库中按顺序生成的数字相关联。应用程序在内部使用该数字,仅在需要向用户显示内容时引用用户名。