serial number format:
- 24 octets represented by 24 hex characters plus hyphens for readibility
e.g. D429-A7C5-9C15-8516-D15D-3A1C
- 0-15: {email+master hash}
- 16-19: {id}
- 20-23: {timestamp}
email+master hash algorithm:
- generate md5 hash of user's email (32 bytes)
- generate md5 hash of undisclosed master key
- xor these two hashes
- remove odd bytes, reducing size to 16
- e.g. D429A7C59C158516D15D3A1CB00488ED --> D2AC9181D531B08E
id:
- initially 0x00000000, then incremented with each licence sold
timestamp:
- timestamp generated when license is purchased
validation:
- in order to register product, user must enter 1) email address and 2) serial number
- generate email+master hash and verify that it matches 0-15 of serial
- extract timestamp from serial and verify that it is < current timestamp and >= date first license is sold