Creating Key Licenses for my Database Application

G

Guest

Hi there,

I have developed a database app that I would like to sell and all I need to
do is allow a user to enter either a License Key, Certificate or some other
un-lock code to allow them to run the app. It doesn't have to be anything
fancy like allow limited access for a period of time or a limited number of
times, just something pretty straight forward. Can anyone recommend a decent
product or point me in the right direction of how I can do this myself?

Thanks in advance.

-David Heine
 
G

Guest

Hey thanks Jeff, I tried this one before coming here. I found out that the
"Demo" was hobbled for "security reasons", at least that's what the message
box indicated when I tried to generate keys on one of the forms... I was
hoping that I could at least try it out on my database so I could get a feel
for what the user would experience but after reviewing his code it looks like
it will not be possible as there are some references that have to be created
to his .mde file via his autexec function( I gather thats where most of his
code resides). I could be wrong but It appears that if I went with this
product, I would have to include his .mde file with my own and I'm not sure
if I want to go that route.
 
G

Guest

from Rainbow01 Hong Kong

some idea for you try :
1) use API function to write down some data to Windows Registry that your
want e.g. installation date, path, your permission information
2) every time starting your Access application to check Windows Registry


"dheine" 來函:
 
D

David C. Holley

The approach that I've suggested before involves coding & then embedding
the expiration date into the value provided (if you're trying to setup a
trial period). Basically, you place key digits/characters into specific
locations with in a string such as 262DA-E4C11-8D0S3-235LD-KI223. Since
only you know where the key digits/characters are located and what they
mean, the probability is slim that someone would be able to create a key
that works. This assumes of course that you're shipping a *.MDE file so
that the code that validates the string is hidden or if you want to be
fancy you could put that code into a .dll or some other compiled file
that you ship with the files. I typically suggest using the 100 year
date as the expiration date. (Today's in 100 year format is 38687
derived by using the CLng() [CLng(#12/1/2005#)]. CDate() will convert
the value back.)

Basic Implementation:
Embed the 100 yr date at specific locations in the string
3xxxx-x8xxx-xx6xx-xxx8x-xxxx7
31R5T-F8561-1F671-GQ188-1I8U7
-OR-
3xxxx-x8x6x-xxxxx-xxxxx-xx8x7
31R5T-F8561-1F671-GQ188-1I8U7

Basic Implementation where the key digits are represented by letters A-J
3xxxx-x8xxx-xx6xx-xxx8x-xxxx7
Cxxxx-xHxxx-xxFxx-xxxHx-xxxxG
C1R5T-FH561-16F71-GQ1H8-1I8UG

The last variation would randomly mix wether or not the digits remain
numeric or are represented by letters
3xxxx-x8xxx-xx6xx-xxx8x-xxxx7
Cxxxx-x8xxx-xxFxx-xxx8x-xxxx7
C1R5T-F8561-16671-GQ188-1I8U7

There are of course other things that you can such as adding another
segment of characters which represent the manner in which the value has
been added such as...

95A2D-31R5T-F8561-1F671-GQ188-1I8U7
Z2BS7-C1R5T-FH561-16F71-GQ1H8-1I8UG
99CS1-C1R5T-F8561-16671-GQ188-1I8U7

In this case the 3rd letter in the first segement indicates how the
number was embedded - method A, method B, method C respectively. (If you
really want to have fun you can do thing where the key digit is the sum,
difference, or multiple of two other characters.)

There are just the tips of the iceberg because you can do other things
where instead of having the key digist at the same places in the string,
you build the string in such a manner that the digits are placed
randomly in the string and then extracted.

The code to build the string and the validate it/read it is simple text
manipulation using Mid() to get the values.

David H
 
D

Douglas J Steele

And what stops someone with, say, Spy++, from simply monitoring what
registry keys your application is reading?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top