Serial number versus Keycode / dictionary


Let’s say you have 1000 customers, so you upload your app and anybody including your 1000 customers can download the app.

You have two options now…

  1. Keycode / dictionary combo with a valid 30-day serial number ( so anybody can use that serial number for 30 days) or
  2. upload app and send serial number via email when payment is made.

You have some known parameters of your customers computers so you have a dictionary built-in which will be checked for validity.
In this case the user do not have to enter a serial number.

Which is better?



something like this…

If some parameters are true then // the computer parameters will be checked via a dictionary, the known customers computer parameters
Proceed //the user did not have to enter a serial number
else // new customer
SerialNumberWindow.showmodal // the serial number when entered will be checked via a serial number algorithm using the serial number sent via email entered and the now known parameters
if serial number is valid then
Proceed // these new computer parameters are added to the dictionary in the new version of the app, /the user will not have to enter a serial number in the new version
msgbox “Incorrect serial number”
end if

It doesn’t matter. If you app is successful, it will be cracked within 24h.
So just do a simple serial and don’t waste time/money on protecting your app.

Don’t do a dictionary. Strings stored in your app are so ridiculously easy to find, and even replace. Also, the information you use to identify customers might not be something they want you sharing with everyone inside the download. It’s best to issue activation codes which will get calculated every time they launch.

As Christoph mentioned, you need to balance the time you spend protecting your app with improving it. You also want your potential customers to feel comfortable with the system.

Thanks. Christoph and Tim.