quarks
quarks

Reputation: 35346

What java library are there provides the the facility to generate unique random string combination from a given set of characters?

What java library are there provides the the facility to generate unique random string combination from a given set of characters?

Say I have these set of characters: [a-zA-Z0-9]

And I need to generate 4-character string from this set that is less likely to collide.

Upvotes: 4

Views: 765

Answers (3)

Michael Borgwardt
Michael Borgwardt

Reputation: 346466

And I need to generate 4-character string from this set that is less likely to collide.

Less likely than what? There are 62^4 = 14.8 million such strings. Due to the birthday paradox, you get about a 50% chance of a collision if you randomly generate 3800 of them. If that's not acceptable, no library will help you, you need to use a longer string or establish uniqueness explicitly (e.g. via incrementing an integer and formatting it in base 62).

Upvotes: 3

user980058
user980058

Reputation: 511

if you'd be ok with a longer hash, you'd certainly be able to find some md5 libraries. It's most common for this kind of task. A lot of web sites use it to generate password hashes.

Upvotes: 1

skaffman
skaffman

Reputation: 403591

Apache Commons Lang has a RandomStringUtils class with a method that takes a sequence of characters and a count, and does what you ask. It makes no guarantee of collision avoidance, though, and with only 4 characters, you're going to struggle to achieve that.

Upvotes: 8

Related Questions