📄 usecurity.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 + -