Software Key Generation - Best Practices?
sarvesh: 1. Get machine fingerprint based on hardware id of the devices. Use your judgment on which one you want to include. 
2. Create a one way hash, with a salt. Store it locally.
3. Call home with this key to activate the product.
4. Every once in a while check the finger print again to see if it has changed if it has redirect to the activation page. This would happen only if the hardware changed.I am assuming that the people won't direct access to this logic in your PHP application. I don't use PHP so don't know if you can pre compile your app.