[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    {
    * In a message originally to All, Brad Larned said:
    BL >Hello All!

    BL >Does anyone have a good registration key routine, they would
    BL >be willing to
    BL >share, I can download Net-Mail or a response in this message
    BL >base will be fine..

    Here goes.... }

    type regpass:array[1..23] of byte;

    function checkregister:boolean;
    var
     f:file of regpass;
     p:regpass;
     a,x,y,z,c:word;
    begin
     assign(f,'REGISTER.KEY');
     reset(f);
     read(f,p);
     close(f);

     for a:=1 to 20 do
      begin
       z:=z+p[a];
       x:=x XOR p[a];
       y:=y+NOT(p[a]);
       end;
     c:=z;
     z:=z MOD 256;
     x:=x MOD 256;
     y:=y MOD 256;
     checkregister:=false;

     if ((x=p[21]) AND (y=p[22])) AND (z=p[23]) then checkregister:=true;
     if c=0 then checkregister:=false;

    end;

    This routine allows you to have both somebody's name and a checksum stored.
    If they don't match up, it appears that it isn't a registered copy.  You can
    stash whatever in the first 20 bytes, and the last three are reserved for a
    chacksum.  This is the routine that I use, and it seems to be pretty
    muck-proof;

    You can write the routine to create the file and do the checksums yourself.
    It's idioticly simple.  C-ya...

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]