java - 如何将 18 个字符的字符串转换为唯一 ID?

标签 java algorithm hash

我有一个 18 字符的字符串,我需要将其转换为唯一的长字符串(在 Java 中)。 示例字符串为:AAA2aNAAAAAAAADnAAA

我的String实际上是一个Oracle ROWID,所以如果需要可以分解,看: http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#CNCPT713

生成的 long 数,(1) 必须是唯一的,因为没有两个结果可以指向同一数据库行,并且 (2) 必须是可逆的,这样我才能从 long 中取回 ROWID 字符串?

欢迎就算法使用提出任何建议。

几年前的 Oracle 论坛问题:http://forums.oracle.com/forums/thread.jspa?messageID=1059740

最佳答案

根据这些要求,你不能。

18 个字符(假设)大小写字母有 5618 或大约 2.93348915 × 10331 组合。这比 64 位中可用的大约 1.84467441 × 1019 组合多(方式)。

更新:我的组合学错了,呵呵。但结果相同。

关于java - 如何将 18 个字符的字符串转换为唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1797611/

相关文章:

java - metaData.getPrimaryKeys() key为单个时返回4条相同的记录

java - 在 for 循环内声明变量以及 print 语句时出错

c++ - 使用 hash_map 时,在 STL 字符串上使用的最佳散列算法是什么?

string - 人类可读的短单向哈希用于模糊日志文件中的字符串?

security - 如何在 Haskell 中对字符串的 SHA256 哈希进行 Base64 UrlEncode?

javascript - 显示来自 servlet 的多个图像

java - 我的 web.xml 不知道 taglib 标签

algorithm - 是否有稀疏编辑距离算法?

algorithm - Knuth 的水库采样伪代码中可能存在错误

regex - 生成最佳的正则表达式匹配