从Long id生成唯一哈希

xyb*_*rek 3 java algorithm hash

我需要从类型的ID值生成唯一的哈希Long.我担心的是它不应该从两个不同的Long/long值全局生成相同的哈希值.

MD5哈希看起来很不错,但哈希字符串很长.我只需要角色

0-9
a-z and A-Z
Run Code Online (Sandbox Code Playgroud)

只有6个字符,如:j4qwO7

什么是最简单的解决方案?

Jon*_*eet 13

您的要求无法满足.您有一个包含62个可能字符的字母表,并且有6个字符可用 - 这意味着该表单有62个6个可能的ID.

不过,也有256个8可能的long值.根据鸽子洞的原则,不可能给每个long值赋予给定形式的不同ID.

  • @xybrek:我看不出这会如何使我的论点无效.正如我在答案中证明的那样,代码*不能满足您的要求. (4认同)