I am working on a program that runs on a user's PC. We do not charge the
user for the software directly, but we charge them to use it. One of the
things the software does is generate a report. I need a way of allowing the
user to pay for a number of credits, and then use one of those credits each
time they generate a report.
I am hoping to find some information on how others have solved similar
problems, but have had a hard time finding anything. I think it might be
that I just don't know exactly what to search for. Does anyone have any
experience to offer?
Here's what I'm thinking so far:
Have a file store on the PC that contains the number of credits and is
reversibly encrypted.
The key to decrypt that file is hard coded into the software.
To generate a report, the file would be read, decrypted and a decremented
number would be encrypted and written back to file.
To buy more credits, it gets iffy. Here are some ideas:
For a simple first iteration, let's not worry about payment. I just want to
start by figuring out how to increment the credits.
Our company could give the customer an encrypted file containing a number of
credits. The key used for encryption would be the same for all installations
of the application. That key is used by the application to check if the file
is authoritative.
There are glaring problems with this. Just to name a couple:
* It may be easy to reverse engineer the keys used for encryption from
the software.
* If a user found that file, they could charge it up, then save it
elsewhere. Then, after using up the credits, just replace the depleted file
with the saved one.
Please let me know if you can offer any ideas or just some key words to
research.
Thanks!
Dustin McQuay
--------------------
BYU Unix Users Group
http://uug.byu.edu/
The opinions expressed in this message are the responsibility of their
author. They are not endorsed by BYU, the BYU CS Department or BYU-UUG.
___________________________________________________________________
List Info (unsubscribe here): http://uug.byu.edu/mailman/listinfo/uug-list