【发布时间】:2017-01-01 07:32:02
【问题描述】:
我有两个从 0 到无穷大的整数(实际上可能小于 100 万,但不想有任何限制)。我想将这两个整数编码为小写字母数字字符串(可能包含破折号,但不应该只是数字)。此外,我希望字符串有点随机(例如,不想总是在每个 int 前面加上“a”)。最重要的要求是我需要能够轻松解码这个字母数字字符串。
我通常只会使用 md5 散列,但它不适用于这种情况,因为我无法从 md5 返回到原始整数。我也考虑过 Base64,但它不起作用,因为字符串可能包含大写。
是否有满足这些要求的已知散列算法?
【问题讨论】:
-
Base-32 怎么样?
-
如果可逆就不是哈希算法,只是编码算法,学究气。
-
当你说“有点随机”时,你是什么意思?随机是不可预测的,还是随机的,对于顺序值来说是高度分布的?
-
您可能想查看stackoverflow.com/questions/8554286/obfuscating-an-id 以了解混淆您的值的想法,然后在混淆后,您可以使用 Base-32 之类的简单代码对其进行编码。
-
Base-32 看起来像我需要的。谢谢。
标签: math hash encoding character-encoding