首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有哪些java库提供了从给定的字符集生成唯一的随机字符串组合的工具?

有哪些java库提供了从给定的字符集生成唯一的随机字符串组合的工具?
EN

Stack Overflow用户
提问于 2011-11-16 20:02:27
回答 3查看 670关注 0票数 4

有哪些java库提供了从给定的字符集生成唯一的随机字符串组合的工具?

假设我有这些字符集: a-zA-Z0-9

我需要从这个集合中生成4个字符的字符串,这样就不太可能发生冲突。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-16 20:07:02

Apache Commons Lang有一个RandomStringUtils类,它的方法接受一个字符序列和一个计数,并按照您的要求执行操作。然而,它不能保证避免冲突,而且只有4个字符,你将很难做到这一点。

票数 8
EN

Stack Overflow用户

发布于 2011-11-16 20:07:50

和我需要从这个集合中生成4个字符的字符串,这样就不太可能发生冲突。

不太可能是什么?有62^4 =1480万个这样的字符串。由于生日悖论,如果你随机生成3800个它们,你会有大约50%的机会发生碰撞。如果这是不能接受的,没有库可以帮助你,你需要使用更长的字符串或明确地建立唯一性(例如,通过增加一个整数并将其格式化为基数62)。

票数 3
EN

Stack Overflow用户

发布于 2011-11-16 20:08:15

如果您可以使用更长的散列,那么您肯定能够找到一些md5库。这对于这类任务来说是最常见的。许多网站使用它来生成密码散列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8151349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档