I would like to know how to obtain random string of 8 characters, and if it possible, obtaining readable strings. For example, I would like to obtain strings like "chocoles" and not string like "akgudyfn"
John Smith wrote:
I would like to know how to obtain random string of 8 characters, and if it possible, obtaining readable strings. For example, I would like to obtain strings like "chocoles" and not string like "akgudyfn"
As for a purely random string, I've got this in my lib directory...
class String class << self def random(opts = {}) if opts[:character_set] chars = opts[:character_set] else chars = ("a".."z").to_a unless opts[:lowercase] == false chars += ("A".."Z").to_a if opts[:uppercase] chars += ("0".."9").to_a if opts[:alphanumeric] chars += opts[:additional_character_set] if opts[:additional_character_set] end newstr = "" 1.upto(opts[:length] || 42) { |i| newstr << chars[rand(chars.size-1)] } return newstr end end end
which lets me call
x = String.random(:length => 42)
John Smith wrote:
I would like to know how to obtain random string of 8 characters, and if it possible, obtaining readable strings. For example, I would like to obtain strings like "chocoles" and not string like "akgudyfn"
As soon as you try to accomplish readability you sacrifice a lot of randomness. If you're willing to make that compromise, would this work?
Define two arrays, one of vowels and one of consonants. Then generate 8-letter words by choosing a random consonant, then a vowel, then... [do 4.times]. That would give you words like:
jerotowe bunurito
...and so on.
You could try to add double-consonant sounds like ch, th, sh, but that would make your letter count more tricky.
- Aaron
Hi --
Take a look at Bubble Babble or RFC 1751:
http://en.wikipedia.org/wiki/Bubble_Babble http://www.faqs.org/rfcs/rfc1751.html
Watch out for, errr, unexpected results though:
http://blog.extracheese.org/2007/12/human-readable-encryption-keys.html