Unique Identifier for Licensing

What is the best unique identifier to use for licensing purposes. I would have thought MAC address but hear these can be spoofed. What are others using?

There’s no perfect way to do this, but MAC is a decent solution. It can be problematic, though, as some machines/setups have changing MAC addresses which could cause exceptions and seem like the license is registered more than it actually is.

Another option is to generate a unique identifier on each machine when the program is first launched, and store it in a separate hidden file. This too can be problematic as the file could be deleted, removed by “cleaning” apps, or found and changed manually.

The best rule is to be flexible and smart with whatever licensing system you set up, as you’re far more likely to upset users with more draconic license/machine/DRM rules than you are to lose a large amount of money via piracy.

First of all, anything can be spoofed.

Mac Addresses, these can change if the user changes network device.
Creation date from the boot drive is another common one, again this can be changed as it’s only meta data.
On the Mac, you can get the model name and the serial number of the machine (Again these can be changed).

Whatever you send to your activation server, make sure that the data is completely obliterated, so that there can be way someone cracking your server can gain any information from your users.

As Tom says, in the past we’ve tried some pretty complicated methods, only to have to come back and cause more issues.

here’s an article from Apple https://developer.apple.com/library/mac/technotes/tn1103/_index.html

Sorry - meant to say “so that there is no way someone cracker your server can gain any user information.”