I am in the process of writing an software update to allow a 15 day trial period.
My approach will be as follows:
1. Trial period key will be based on current date/time and volume serial number.
2. Will use Rindjael encryption/decryption to store and retrieve the above info
from an obscure registry key.
3. The app will decrypt the retrieved data to determine if the 15 day trial
period is in effect. If so, allow the user to run software.
4. The trial period app will display the users' public key which is based on
the encrypted registry key. If the user wishes to purchase the software,
he/she must email the public key back to the company. The company in turn
will return a unlock key to remove the trial period from the software.
I am aware that there is no absolutely foolproof method of keeping software secure
but I just want to try to keep the average user (non pro hacker) honest.
Thus my questions...
1. Can anybody suggest improvements to the above described approach?
2. Can anybody see any flaws in the above approach?
3. How can I programmatically determine if a user set the system date back
to a legal date with the 15 day trial period to circumvent the expiration
of the trial software?
4. I'm not sure on how to write the algorithm to convert the users' public
key into an unlock key. Any suggestions?