The change log includes a detailed description of all changes to this package in the recent releases.
Changes from 3.0.0 to 3.1.0
mxUID now uses hashlib instead of the md5 module (if available)
Changes from 0.2.0 to 3.0.0
Moved package from the mx Experimental Distribution to mx Base Distribution
Synchronized version number with the distribution.
Changes from 0.1.0 to 0.2.0
Moved verify() into the C extension.
Added (undocumented, internal) otp() API which allows applying a one-time stamp to a UID string for encryption. The function is idempotent (applying it a second time will reverse the mapping) making it ideal for encryption/decryption.
Added helper APIs mangle() and demangle() which encode the UID strings in a way which should make it very hard to construct valid UIDs without knowledge of the key string provided that only mangled UID strings are made public. The APIs also add noise to the UID strings to cover the internal structure (this doesn't make them more secure to analysis, though).
Changed the UID layout to enhance performance, esp. when using the UIDs as index strings in databases (they no longer start with the timestamp, which caused UIDs to typically differ starting at the 9th string position). The UID length also has gone down to the more computer friendly 32 byte format.
Reduced the maximum code length.
Fixed a portability bug. The mxUID_GetCurrentTime() API (taken from mxDateTime) needs some extra include files on a few platforms. Thanks to Dirk Holtwick for finding this one -- it was a simple copy&paste bug.
The UID ID counter will now be preset from the time of import. This should make the UIDs a little less predictable (even without mangling).
Fixed the mxUID initialization to work on machines which don't have a network connection.