Tim Pease wrote: > Should this output the same integer value on all platforms where Ruby > can run? Perhaps, but if you read the below, you'll see why you should never rely on it. > It appears not! So, any suggestions on generating an ID number for an > object that is unique yet consistent across different platforms? I'd > like to have some method that I could call on an object that would > return a reproducible value that would uniquely identify that object. That's not possible. There is more entropy in an arbitrary object than can be represented in a FixNum. Basic coding theory stuff. If it was possible, then you could code all the data in all the databases in the world into a single Fixnum :-). If you want a fixed-length code that's sufficiently likely to be unique that you can be almost certain that you'll never see a false duplicate, you need to use a cryptographic hash function. I recommend SHA-256, but you might survive with a weaker one like MD5 or SHA-1. They take a lot more work to calculate than is justified for Ruby's hash keys though! With these functions, the probability of a population containing a false duplicate is approximately 50% when the population contains sqrt(2^N), (or 2*(N/2)) distinct items, where N is the number of bits in the checksum. For SHA-256, that means you need 2^128 items before you have a reasonable chance of a collision. All of the programs you'll ever write, running for your entire life, will only create a tiny fraction of this many objects, so the chance of you ever seeing a collision is tiny. That might sound risky still, but all of e-commerce is built on the principle. If it's good enough for that, it's good enough for you :-) Clifford Heath.