Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Re: Re: Use time() to create unique ID

by blue_cowdawg (Monsignor)
on Sep 16, 2003 at 23:59 UTC ( [id://291999]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Use time() to create unique ID
in thread Use time() to create unique ID

      You may be fooling yourself with your ID length of 128. On many platforms, the limiting factor is the size of the seed, which is often 32 bits.
If you are attempting to start an argument with me, you failed. I agree with you. This is where some very serious testing needs to be done on any solution where you are attempting to produce unique keys of any sort. Especially where real "randomness" is required. Hence why elsewhere in this thread I make reference to using system entropy as they do in PGP and GNUpg and other cryptographic products.

In 25 years of programming I have yet to see a truly random random number generator over a sufficiently large data set without the use of some external influence on the numbers being generated.

This of course gets back to the basic premise that using time() and friends to produce the id may not be very ideal even for the simplest of application.

However, I stand by my opinion that the degree of randomness you need is part of the design criteria you need to develop in your program specification and the criticality it has in relationship to the program you are writing and the data or transactions you are trying to protect. If I am generating unique IDS for sessions dealing with a guest book application (OK... so I'm exaggerating) then I am not going to worry too much about how random the key generation is. On the other hand if I am protecting national security data where lives are on the line then I am going to look to somebody like the NSA for guidance as to what the "latest and greatest" crypto algorithm is.


Peter L. Berghold -- Unix Professional
Peter at Berghold dot Net
   Dog trainer, dog agility exhibitor, brewer of fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and a good Belgian ale in your chalice.
  • Comment on Re: Re: Re: Use time() to create unique ID

Replies are listed 'Best First'.
Re: Re: Re: Re: Use time() to create unique ID
by sauoq (Abbot) on Sep 23, 2003 at 19:04 UTC
    If you are attempting to start an argument with me, you failed. I agree with you.

    I wasn't "attempting to start an argument" with anyone. I was pointing out a conceptual misunderstanding that you displayed both with your code and with the assertion you made in the post I was replying to: "However the longer the key the more likely it is to be unique."

    As your code uses a pseudorandom generator, the length of the "key" isn't the limiting factor... the length of the seed is.

    Hence why elsewhere in this thread I make reference to using system entropy as they do in PGP and GNUpg and other cryptographic products.

    And, elsewhere, I point out that relying on randomness for creating unique identifiers is a poor approach altogether.

    There are two points to be made here. 1) Using real random numbers rather than pseudorandom numbers doesn't fix the problem with relying on randomness for generating unique IDs. 2) Using a longer "key" length is not at all guaranteed to reduce the number of duplicates you will get.

    I was addressing #2 in this thread and #1 in the other.

    -sauoq
    "My two cents aren't worth a dime.";
    

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://291999]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2024-04-25 10:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found