Shareware product key

I have written an application that I would like to distribute as shareware.  I am totally new to this.
I would like to create my own activation code.

Is there any standard information to include in the code?
Example:
When the person pays money, I am planning on giving a year of free updates.  The expiration date for their updates would be something I would want.
I am considering including a number to check the name in the "registered to" box (so they cannot transfer the registration to another person).  Is there a downside to this strategy that I am not thinking of?

Are there more pieces of information that would be good to include?

Also, I am guessing that this information should be encrypted.  I would like to build a code generator in ColdFusion (a web language) so I would not have to be involved.  Any ideas for a plan for this end of things?

Thanks in advance,

Matthew
LVL 5
M256Asked:
Who is Participating?
 
bramsquadCommented:
what i was talking about with "hard coding" a serial in, is mainly creating a string of characters which will give your users"full access" to the program.  

you could have your trial version for distributing, and when they send you the money you could send them a key to "unlock" the software.

this key could be hardcoded in, something as simple as

Dim ProductKey As String = "ASEF@Q#$RW#G%ASDV" '<-- or whatever you want
if Me.txtKey.Text = ProductKey Then
  UnlockSoftware()
end if

now if you were to choose to place the date in there, you could just write a small program which would create a key, and extract the date value from the key based on whatever algorithm you choose.

for example, todays date is 10/15/2004, if you wanted to incorperate that into a key, you could do something along the lines of

        Dim Gibborish() As String = {"AE$#", "EFG6", "876D"}
        Dim TodaysDate As Date = Now()
        Dim Key As String

        Key = Gibborish(0).ToString + TodaysDate.Month.ToString + _
              Gibborish(1).ToString + TodaysDate.Day.ToString + _
              Gibborish(2).ToString + TodaysDate.Year.ToString

        MsgBox(Key)

you could be more creative, but i think you get the idea.  as far as any other info, im not sure what the company would want in the serial.....i know that some programs have the serial depend on the user name....not sure why, but some do.

hope its a little more clear

~b
 
0
 
Hans LangerCommented:
Hi,
what happend if the user register the key in 2 different computer ? if can do that then he can give his key to anybody.
0
 
bramsquadCommented:
it sucks for developers, but the bottom line i think is, and what youre going to find is that if people really want your software for free, thell get it.

as far as the date thing is concerned, you could either encorperate it into the serial, or just keep a log or database of registration names with dates registered......this way, if you did an online update, you could have them put in their reg. name, it would query your db, and return successful if the date was within a year.

in my opinion, you might as well just hardcode a serial in, i think it would be a lot more cost-time effective.  you could spend a lot of time designing an algorithm for something which may or may not increase your revenue.

~b

0
 
M256Author Commented:
Thanks for the responses folks.
I understand that anybody could rip me off.  I'm OK with that.

bramsquad, what do you mean by "hardcode a serial in"?  Would it be imbedded in each copy of the software I sell?

However, I think this is a little off the subject.  I meant to ask how most people create a product key (serial code?).
Is is just a random string that has a check at the end to verify it hasn't been tampered with?
Or, do they encode information in it?
If the second, what information do they encode?

Matthew
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.