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

📄 usecurity.pas

📁 自己写的一个用于管理通讯录、记事、计划管理等的小程序。
💻 PAS
字号:
unit uSecurity;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, Mask,StrUtils;

type
  TFormSecurity = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    MaskEdit1: TMaskEdit;
    MaskEdit2: TMaskEdit;
    MaskEdit3: TMaskEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    MaskEditSeed: TMaskEdit;
    GroupBox3: TGroupBox;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    GroupBox4: TGroupBox;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    MaskEdit5: TMaskEdit;
    MaskEdit6: TMaskEdit;
    MaskEdit7: TMaskEdit;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn9: TBitBtn;
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure MaskEdit1Exit(Sender: TObject);
    procedure MaskEditSeedExit(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure MaskEdit5Exit(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure MaskEdit1Change(Sender: TObject);
    procedure MaskEdit5Change(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure MaskEditSeedKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit3KeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit5KeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit6KeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit7KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  function security(str:string;seed:string):string;

var
  FormSecurity: TFormSecurity;

implementation

uses dmAssistant,uLogin,uAddressList,uRoutine,uScheme,uNotepad;

{$R *.dfm}

procedure TFormSecurity.BitBtn5Click(Sender: TObject);
begin
  FormAddressList.Show;
  Close;
end;

procedure TFormSecurity.BitBtn3Click(Sender: TObject);
begin
  FormRoutine.Show;
  Close;
end;

procedure TFormSecurity.BitBtn4Click(Sender: TObject);
begin
  FormScheme.Show;
  Close;
end;

procedure TFormSecurity.BitBtn6Click(Sender: TObject);
begin
  FormNotepad.Show;
  Close;
end;

procedure TFormSecurity.BitBtn9Click(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TFormSecurity.FormCreate(Sender: TObject);
begin
  DataModuleAssistant.ADOQuerySecurity.Active:=True;
  if DataModuleAssistant.ADOQuerySecurity.FieldValues['seed']<>'' then
    MaskEditSeed.Text:=DataModuleAssistant.ADOQuerySecurity.FieldValues['seed'];
end;

procedure TFormSecurity.MaskEdit1Exit(Sender: TObject);
begin
  if security(MaskEdit1.Text,MaskEditSeed.Text)=DataModuleAssistant.ADOQuerySecurity.FieldByName('loginpassword').AsString then begin
    MaskEdit2.Enabled:=True;
    MaskEdit3.Enabled:=True;
  end else begin
    MaskEdit2.Enabled:=False;
    MaskEdit3.Enabled:=False;
  end;
end;

procedure TFormSecurity.MaskEditSeedExit(Sender: TObject);
Var nSeed:string;
begin
  nSeed:=DataModuleAssistant.ADOQuerySecurity.FieldByName('seed').AsString;
  DataModuleAssistant.ADOQuerySecurity.Edit;
  DataModuleAssistant.ADOQuerySecurity.FieldByName('loginpassword').AsString
    :=security(security(DataModuleAssistant.ADOQuerySecurity.FieldByName('loginpassword').AsString,
      DataModuleAssistant.ADOQuerySecurity.FieldByName('seed').AsString),MaskEditSeed.Text);
  DataModuleAssistant.ADOQuerySecurity.FieldByName('notepassword').AsString
    :=security(security(DataModuleAssistant.ADOQuerySecurity.FieldByName('notepassword').AsString,
      DataModuleAssistant.ADOQuerySecurity.FieldByName('seed').AsString),MaskEditSeed.Text);
  with DataModuleAssistant.ADOQueryNotepad do
  begin
    first;
    while not EOF do
    begin
      FieldByName('content').AsString:=security(security(FieldByName('content').AsString,nSeed),MaskEditSeed.Text);
      next;
    end;    // while
  end;    // with
  DataModuleAssistant.ADOQuerySecurity.FieldByName('seed').AsString:=MaskEditSeed.Text;
  DataModuleAssistant.ADOQuerySecurity.Post;
end;

procedure TFormSecurity.BitBtn7Click(Sender: TObject);
begin
  if MaskEdit2.Text=MaskEdit3.Text then begin
    DataModuleAssistant.ADOQuerySecurity.Edit;
    DataModuleAssistant.ADOQuerySecurity.FieldByName('loginpassword').AsString:=security(MaskEdit2.Text,MaskEditSeed.Text);
    DataModuleAssistant.ADOQuerySecurity.Post;
  end else showmessage('两个密码不一致!');
end;

procedure TFormSecurity.MaskEdit5Exit(Sender: TObject);
begin
  if security(MaskEdit5.Text,MaskEditSeed.Text)=DataModuleAssistant.ADOQuerySecurity.FieldByName('notepassword').AsString then begin
    MaskEdit6.Enabled:=True;
    MaskEdit7.Enabled:=True;
  end else begin
    MaskEdit6.Enabled:=False;
    MaskEdit7.Enabled:=False;
  end;
end;

procedure TFormSecurity.BitBtn2Click(Sender: TObject);
begin
  if MaskEdit6.Text=MaskEdit7.Text then begin
    DataModuleAssistant.ADOQuerySecurity.Edit;
    DataModuleAssistant.ADOQuerySecurity.FieldByName('notepassword').AsString:=security(MaskEdit6.Text,MaskEditSeed.Text);
    DataModuleAssistant.ADOQuerySecurity.Post;
  end else showmessage('两个密码不一致!');
end;

procedure TFormSecurity.MaskEdit1Change(Sender: TObject);
begin
  if security(MaskEdit1.Text,MaskEditSeed.Text)=DataModuleAssistant.ADOQuerySecurity.FieldByName('loginpassword').AsString then begin
    MaskEdit2.Enabled:=True;
    MaskEdit3.Enabled:=True;
  end else begin
    MaskEdit2.Enabled:=False;
    MaskEdit3.Enabled:=False;
  end;
end;

procedure TFormSecurity.MaskEdit5Change(Sender: TObject);
begin
  if security(MaskEdit5.Text,MaskEditSeed.Text)=DataModuleAssistant.ADOQuerySecurity.FieldByName('notepassword').AsString then begin
    MaskEdit6.Enabled:=True;
    MaskEdit7.Enabled:=True;
  end else begin
    MaskEdit6.Enabled:=False;
    MaskEdit7.Enabled:=False;
  end;
end;

procedure TFormSecurity.BitBtn8Click(Sender: TObject);
begin
  if security(MaskEdit1.Text,MaskEditSeed.Text)<>DataModuleAssistant.ADOQuerySecurity.FieldByName('loginpassword').AsString then
    showmessage('原口令不正确!');
end;

procedure TFormSecurity.BitBtn1Click(Sender: TObject);
begin
  if security(MaskEdit5.Text,MaskEditSeed.Text)<>DataModuleAssistant.ADOQuerySecurity.FieldByName('notepassword').AsString then
    showmessage('原口令不正确!');
end;

function security(str:string;seed:string):string;
Var nCount,nPost:integer;
  I: Integer;
  nTempStr,nStr:char;
  nSumStr:string;
begin
  nSumStr:='';
  nCount:=length(seed);
  for I := 1 to length(str) do    // Iterate
  begin
    nStr:=str[I];
    nPost:=(I mod nCount)+1;
    nTempStr:=seed[nPost];
    { if ((nStr>='a') and (nStr<='z')) or ((nStr>='A') and (nStr<='Z')) then begin
      nStr:=char(ord(nStr) xor ord(nTempStr));
      nSumStr:=nSumStr+nStr;
    end; }
    if (nStr>='0') and (nStr<='9') then begin
      nStr:=inttostr((strtoint(nStr) xor strtoint(nTempStr)))[1];
      nSumStr:=nSumStr+nStr;
    end else nSumStr:=nSumStr+nStr;
  end;
  result:=nSumStr;    // for
end;    //

procedure TFormSecurity.MaskEditSeedKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key = #13 then
  begin
    perform(WM_NEXTDLGCTL,0,0);
  end;
end;

procedure TFormSecurity.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    perform(WM_NEXTDLGCTL,0,0);
  end;
end;

procedure TFormSecurity.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    perform(WM_NEXTDLGCTL,0,0);
  end;
end;

procedure TFormSecurity.MaskEdit3KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    perform(WM_NEXTDLGCTL,0,0);
  end;
end;

procedure TFormSecurity.MaskEdit5KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    perform(WM_NEXTDLGCTL,0,0);
  end;
end;

procedure TFormSecurity.MaskEdit6KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    perform(WM_NEXTDLGCTL,0,0);
  end;
end;

procedure TFormSecurity.MaskEdit7KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    perform(WM_NEXTDLGCTL,0,0);
  end;
end;

end.

⌨️ 快捷键说明

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