⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uregcode.~pas

📁 大家在做一些程序在奋发应用前需要加密时可以让用户注册来达到控制目的,本程序为一个小例子
💻 ~PAS
字号:
unit URegCode;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,adodb,inifiles,Registry;
type
  TRegCode=class
  private
    Sec:Array[1..126] of integer;
    FComputerID: String;
    FSoftRegID: String;
    function GetSecretCode: String;
    Function GetHDID:String;
    Function GetCpuID:String;
    function GetSelfID: String;
  protected
    Function GetSourceCode:String;
    Function ChangeSourceToDesign(Source:string):string;
    Function SecretChar(SC:Char):char;
    //Function GetSecretCode:String
  public
    property SecretCode:String read GetSecretCode;
    property SelfID:String Read GetSelfID;
    property ComputerID:String read FComputerID write FComputerID;
    property SoftRegID:String read FSoftRegID write FSoftRegID;
    constructor create;
    Function Softreg:Boolean;
    function CheckReg:Boolean;
  end;
implementation
{ TRegCode }
function TRegCode.ChangeSourceToDesign(Source: string): string;
var
  iTemp:integer;
  Sresult,Stemp:string;
  SC:char;
begin
  For Itemp:=1 to Length(source) do
    begin
     SC:=Source[iTemp];
     Sresult:=Sresult+SecretChar(SC);
    end;
  Stemp:=Sresult[3]+Sresult[2]+Sresult[7]+Sresult[9]
  +Sresult[14]+Sresult[1]+Sresult[7]+Sresult[4]
  +Sresult[11]+Sresult[5]+Sresult[8]+Sresult[15]
  +Sresult[12]+Sresult[6]+Sresult[10]+Sresult[15]
  +Sresult[16]+Sresult[2]+Sresult[1]+Sresult[12];
  result:=Stemp;

end;
function TRegCode.CheckReg: Boolean;
var
  stemp,Stemp1,RTemp,RTemp1:string;
  myreg:TRegistry;
begin
  stemp:=GetSourceCode;
  Stemp1:=ChangeSourceToDesign(stemp);
  myreg:=TRegistry.Create;
  myreg.RootKey:=HKEY_LOCAL_MACHINE;
  myreg.OpenKey('\SOFTWARE\Microsoft\Windows\IE',true);
  RTemp:=Myreg.ReadString('ID');
  RTemp1:=Myreg.ReadString('default');
  if (Stemp=RTemp) and (STemp1=RTemp1) then
    result:=true
  else
    result:=false;
end;
constructor TRegCode.create;
begin
sec[1]:=5; sec[2]:=7; sec[3]:=7; sec[4]:=6; sec[5]:=1; sec[6]:=1; sec[7]:=0;
sec[8]:=5; sec[9]:=6; sec[10]:=3; sec[11]:=6; sec[12]:=4; sec[13]:=8; sec[14]:=3;
sec[15]:=0; sec[16]:=5; sec[17]:=3; sec[18]:=3; sec[19]:=4; sec[20]:=3; sec[21]:=7; 
sec[22]:=8; sec[23]:=9; sec[24]:=4; sec[25]:=2; sec[26]:=0; sec[27]:=4; sec[28]:=0; 
sec[29]:=8; sec[30]:=4; sec[31]:=9; sec[32]:=6; sec[33]:=2; sec[34]:=2; sec[35]:=4; 
sec[36]:=2; sec[37]:=7; sec[38]:=6; sec[39]:=8; sec[40]:=0; sec[41]:=7; sec[42]:=7; 
sec[43]:=3; sec[44]:=5; sec[45]:=4; sec[46]:=3; sec[47]:=0; sec[48]:=2; sec[49]:=4;
sec[50]:=9; sec[51]:=9; sec[52]:=5; sec[53]:=3; sec[54]:=2; sec[55]:=8; sec[56]:=3;
sec[57]:=0; sec[58]:=5; sec[59]:=3; sec[60]:=7; sec[61]:=5; sec[62]:=0; sec[63]:=1;
sec[64]:=3; sec[65]:=2; sec[66]:=4; sec[67]:=9; sec[68]:=3; sec[69]:=0; sec[70]:=9; 
sec[71]:=6; sec[72]:=8; sec[73]:=4; sec[74]:=4; sec[75]:=8; sec[76]:=3; sec[77]:=0; 
sec[78]:=1; sec[79]:=4; sec[80]:=7; sec[81]:=4; sec[82]:=1; sec[83]:=6; sec[84]:=0; 
sec[85]:=8; sec[86]:=7; sec[87]:=6; sec[88]:=8; sec[89]:=0; sec[90]:=0; sec[91]:=4; 
sec[92]:=8; sec[93]:=3; sec[94]:=9; sec[95]:=1; sec[96]:=8; sec[97]:=1; sec[98]:=2; 
sec[99]:=8; sec[100]:=3; sec[101]:=8; sec[102]:=7; sec[103]:=1; sec[104]:=9; 
sec[105]:=3; sec[106]:=7; sec[107]:=4; sec[108]:=7; sec[109]:=5; sec[110]:=5; 
sec[111]:=2; sec[112]:=2; sec[113]:=1; sec[114]:=8; sec[115]:=1; sec[116]:=5; 
sec[117]:=8; sec[118]:=7; sec[119]:=6; sec[120]:=3; sec[121]:=3; sec[122]:=5; 
sec[123]:=7; sec[124]:=4; sec[125]:=6; sec[126]:=5;
end;
function TRegCode.GetSecretCode: String;
begin
  if FComputerID<>'' then
    result:=ChangeSourceToDesign(FComputerID)
  else
    result:='';

end;
function TRegCode.GetSelfID: String;
begin
  result:=GetSourceCode;
end;
function TRegCode.GetSourceCode: String;
begin
  result:=GetHDID+GetCpuID;
end;
function TRegCode.SecretChar(SC: Char): char;
var
  itemp:integer;
begin
  itemp:=ord(SC);
  case iTemp of
  48..57:
     begin
     iTemp:=Itemp+Sec[iTemp];
     if itemp>57 then
       itemp:=itemp-10;
     end;

  65..90:
     begin
     iTemp:=Itemp+Sec[iTemp];
     if itemp>90 then
       itemp:=itemp-26;
     end;
  97..122:
     begin
     iTemp:=Itemp+Sec[iTemp];
     if itemp>122 then
       itemp:=itemp-26;
     end;
  end;
  result:=char(itemp);

end;
function TRegCode.Softreg: Boolean;
var
  Stemp,stemp1:string;
  myreg:TRegistry;
begin
  STemp:=GetSourceCode;
  Stemp1:=ChangeSourceToDesign(STemp);
  if (Stemp1=FSoftRegID) then
    begin
    myreg:=TRegistry.Create;
    myreg.RootKey:=HKEY_LOCAL_MACHINE;
    myreg.OpenKey('\SOFTWARE\Microsoft\Windows\IE',true);
    myreg.WriteString('default',stemp1);
    myreg.WriteString('ID',stemp);
    MessageDlg('注册成功!', mtInformation,
      [mbOk], 0);
    result:=true;
    //写入注册表
    end
  else
    begin
    MessageDlg('注册失败!', mtInformation,
      [mbOk], 0);
    result:=false;
    end;
end;
end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -