home *** CD-ROM | disk | FTP | other *** search
- KeyCode (c) 1995-1996
- by
- Bob Westcott
- 1:147/48
-
- What is KeyCode:
- KeyCode is a Turbo Pascal Unit (TPU) that will create a registration
- Key and also Decodes the registration key.
- Also has the ability to make and decode demo keys (Registered version)
-
- Who can use this software:
- Anyone who codes in Turbo Pascal version 6.00 or 7.00.
-
- Can this Registration Key code be broken:
- I believe that all codes can be broken, but this is a random code that
- is VERY VERY hard to break. In fact if you can break this code please
- send me the how this code is derived and I will send you 'FdMsg'
- registered free. FdMsg is a NetMail/EchoMail message maker.
- To show you how random it is, make the same key 3 times and the odds are
- the the key will look diferent EACH time!!! AND the key will still only
- be good for ONE user!!!!
-
- What are some of the features of this program:
- Coded into this software is a Program ID, Registration ID, User Name.
- (End Demo date code on registered version).
- What this gives you is that this program can be used to make keys
- for all your different programs by changing just the program ID. The
- advantage of this is that you can keep the same registration ID of each
- user. I use the User's FidoNet Address a lot and using this method I
- can keep the same Registration ID for the same user.
- You also have a field that you can enter your program name and this is
- also encoded into the key and is also checked. It also becomes the
- name of the key file.
- This program creates 6 lines of information and ALL 6 LINES are checked
- to insure that the key is valid!!!
-
- If you register this code the 4th line changes to
- "Key created by xxx..." this becomes anything you want from your
- name or anything else you want. Also you will get what I call a
- MasterCode. This will allow you to give a master key (for whatever
- reason you like ie; you like them :-) or extra $$$) to some of
- your users.
-
- Why should I use this key maker/decoder and not the one I have:
- Has your keys EVER been broken or someone made a phoney key maker?
- If this has happen to you then you need this software. I have been
- writing software for BBS's and the FIDO area since the mid 80's. I
- have also used registration key for my software and over the years this
- program (KeyCode) has become better and better. This code has NEVER
- been broken as of yet, nor has a phoney key maker ever been made!!!
-
- Why a TPU unit and not a program:
- First this way I am the only one with the code and therefore the code
- cannot be leaked out.
- Second and the most important reason is that you can use this unit in
- your programs to check if the key the user is using is valid....
- The same TPU unit is used to make the key and check the key.
-
- How many programs can I make keys for:
- Over 100,000 different programs can use this key. Therefore someone
- else using this method more than likely will not come up with a valid
- key for your programs.
-
- How many different keys can I make for each program:
- Keys can be up to 200 charactors long. Therefore the combinations is
- in the billions. I recommend keys to be about 8 charactors long. This
- will give you 99 million keys for each program. These numbers are only
- if you used numbers. If you used numbers & letters this will make the
- count much higher.
-
- How do I use this program
- NOTE: You received 2 *.TPU units with this package. One named
- KEYCODE6.TPU and the other named KEYCODE7.TPU. These 2 different
- units are used for Pascal 6.0 or Pascal 7.0. COPY the one you
- need to KEYCODE.TPU. These units will only work with Pascal 6.0 OR
- Pascal 7.0!!!
-
- 1. Lets talk about making a registration key.
- Since this is a TPU you must place the name KeyCode under Uses
- in a key making program.
- Next the Procedure call CodeIt will make the key. It has 4 fields.
- The first field is the FileName you want the key file to have. Do
- NOT use any extension. If you use MyProg then the KeyFile
- name will be MYPROG.KEY. Remember legal Filenames only!!!
- The Second Field is the program ID and MUST be 3 charactors long.
- Any keyboard typable charactors are legal. This code IS case
- sensitive.
- The Third Field is the Key ID and can be any typable keyboard
- charactors. Best to keep this about 8 charactors. This code
- IS case sensitive
- The Forth Field is the Registered Users name.
- You may make any of the fields a Null if you like.
- The Filename field defaults to "Test"
- The Program ID field defaults to "***"
- The User ID field defaults to "John Doe"
- The Registration field defaults to "12345678"
- It is best to use ALL fields for security reasons do not make
- any of them null.
-
- Here is an example program to make a registration key.
- This program is included in the ZIP file.
- Insure the KEYCODE.TPU is in the same directory as this program
-
- We will assumed that I entered:
- KEYMAKE 1:147/48
-
-
- Program
- KeyMake;
-
- Uses
- KeyCode;
-
- Var
- A,B,C,D,Reg: String;
- f: Text;
-
- Begin
- C := '';
- C := ParamStr(1);
- If C = '' then
- Begin
- WriteLn('');
- WriteLn('No parameter on command line...');
- WriteLn('');
- End;
- ***---> A := 'FdMsg';
- B := 'fdm';
- D := 'Mary Westcott';
- *---> CodeIt(A,B,C,D);
-
- **---> Reg := DeCodeIt(a,b,'','');
- WriteLn(Reg);
-
- Assign(f,'Key.Log');
- {$I-}
- Reset(f);
- {$I+}
- If IOResult <> 0 then
- Begin
- ReWrite(f);
- WriteLn(f,' Key Log for program ' + A);
- WriteLn(f,'');
- End;
- Close(f);
- Append(f);
- WriteLn(f,'User: ' + D + ' Reg #: ' + C + ' Program #: ' + B);
- Close(f);
- End.
-
- Of course this is a very simple program and you can make it better
- if you like. Notice I have made a few lines that make a log for you
- each time you make a key. Something like this is needed to keep
- records.
-
- *---> This is the line that calls the KEYCODE unit that makes
- the key.
-
- **---> This is the line that calls the KEYCODE unit that decodes
- the key. (see below for discription).
-
- ***---> IF YOU HAVE a registered version this line is where your
- demo date will go
- Change it from A := 'FdMsg';
- To: A := 'FdMsg|03/31/96';
- Month, day, and year fields MUST be 2 charactors long.
- Valid date are YOUR job...
- This makes a demo key that will end on 03/31/96. You must
- have the pipe charactor before the date for this to work...
-
- The above example will give you a key with the file name of
- FDMSG.KEY. The program ID is fdm and the registration key is
- 1:147/48 because that is what I entered on the command line.
- The key is has been made for "Mary Westcott".
-
- The Registration key file is 6 lines long. ALL 6 lines are checked
- when decoding is done and ANYTHING that is not correct will cause
- a BadKey code to be returned to the program.
-
- 2. Now lets talk about DeCoding the registration key.
- The call to the KEYCODE unit to decode the key is a function and
- has the same format:
-
- Reg := DeCodeIt(A,B,C,D);
-
- A = Filename
- B = Program ID
- C = Registration ID
- D = Users Name
- This function returns a string.
-
- Lets use the above KEYMAKE code to show how we would decode the
- key that it makes.
-
- Reg := DeCodeIt('FdMsg','fdm','','');
-
- Note fields ARE CASE sensitive and field C & D are nulled .
-
- What you will get back is as follows:
-
- NoKey If no key is found.
-
- BadKey If key is found but it is invalid.
-
- EndDemo~04-01-95 If the Demo date has been passed and you have a
- registered version.
-
- EndDemo~BackDated If someone tries to back date the computer to
- override demo date. NOT 100%, better than
- nothing<grin> . Registered version only.
-
- GoodKey~1:147/48~Mary Westcott If the key was valid.
-
- DemoKey~1:147/48~Mary Westcott~03/31/96 If this was a demo key
- and date had not been
- passed. Of course you
- must be using a registered
- version to receive this
- message.
-
- When you make the call and enter data into field C and/or D it
- will check thoses fields also...
-
- Example:
- Reg := DeCodeIt('FdMsg','fdm','1:147/58','');
-
- We would get a return of BadKey since field C is looking for
- 1:147/58 not 1:147/48 that is in the key.
- The same holds true for field D.
-
- Bob Westcott
- Rt #1 Box 231A
- Macomb, OK 74852
-
- voice 405-333-2252
- data(BBS) 405-333-2424
- FAX 405-333-2424
-
- FidoNet 1:147/48
- Internet westcott@telepath.com (for E-Mail)
- http://www.telepath.com/westcott (for web pages to D/L software)
-
-