http://www.perlmonks.org?node_id=1016742


in reply to Custom-length random/unique string generator

my $buildID = md5_base64 ( rand($$) ) . md5_base64 ( rand($$) ) . md5_base64 ( rand($$) );

Let's see. On most *nix's, max_pid is 32768. That means that at most, you have 32768**4 = 1,152,921,504,606,846,976 inputs.

But, if your process happens to get allocated pid=100; then you only have 100**4 = 100,000,000 possibles.

The random number generator is seeded elsewhere with a permutation of this child's process ID and current machine time

Again, pids ranging from ~ 2 .. 32768. Time() during the working day, say 8.00am to 6pm: 29,000 .. 64,000.

You don;t say how they are combined, but typically people use something like  srand( $$ ^ time() ), and that produces a range of number far smaller than they intuitively expect.

this is 2.4e+100 possible combinations,

I think that is way optimistic.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.