117 lines
2.6 KiB
Plaintext
117 lines
2.6 KiB
Plaintext
unit DBs1OtpMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons,
|
|
Tocsg.Controls;
|
|
|
|
type
|
|
TDlgBs1OtpMain = class(TForm)
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
Label4: TLabel;
|
|
Label5: TLabel;
|
|
edEmpNo: TEdit;
|
|
edGenCode: TEdit;
|
|
edSetCode: TEdit;
|
|
edEncBase64: TEdit;
|
|
edEncBinHex: TEdit;
|
|
btnGetCode: TSpeedButton;
|
|
Label6: TLabel;
|
|
Label7: TLabel;
|
|
edResult1: TEdit;
|
|
edResult2: TEdit;
|
|
btnGetAuth: TButton;
|
|
procedure btnGetCodeClick(Sender: TObject);
|
|
procedure btnGetAuthClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
MgCtrls_: TManagerInputControlsData;
|
|
public
|
|
{ Public declarations }
|
|
Constructor Create(aOwner: TComponent); override;
|
|
Destructor Destroy; override;
|
|
end;
|
|
|
|
var
|
|
DlgBs1OtpMain: TDlgBs1OtpMain;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Tocsg.Path, System.Math, CrmLogger, Tocsg.Strings;
|
|
|
|
{$R *.dfm}
|
|
|
|
Constructor TDlgBs1OtpMain.Create(aOwner: TComponent);
|
|
begin
|
|
Inherited Create(aOwner);
|
|
MgCtrls_ := TManagerInputControlsData.Create(CutFileExt(GetRunExePath) + '.ini');
|
|
MgCtrls_.RegInputCtrl(edEmpNo);
|
|
MgCtrls_.Load;
|
|
end;
|
|
|
|
Destructor TDlgBs1OtpMain.Destroy;
|
|
begin
|
|
FreeAndNil(MgCtrls_);
|
|
Inherited;
|
|
end;
|
|
|
|
procedure TDlgBs1OtpMain.btnGetAuthClick(Sender: TObject);
|
|
var
|
|
sTemp, sCode: String;
|
|
i: Integer;
|
|
dtNow: TDateTime;
|
|
begin
|
|
edEmpNo.Text := Trim(edEmpNo.Text);
|
|
if edEmpNo.Text = '' then
|
|
begin
|
|
MessageBox(Handle, PChar('사번을 입력해 주십시오.'), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
edEmpNo.SetFocus;
|
|
exit;
|
|
end;
|
|
MgCtrls_.Save;
|
|
|
|
sCode := Trim(edGenCode.Text);
|
|
if sCode = '' then
|
|
begin
|
|
MessageBox(Handle, PChar('코드를 생성해 주십시오.'), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
edGenCode.SetFocus;
|
|
exit;
|
|
end;
|
|
|
|
dtNow := Now;
|
|
sTemp := FormatDateTime('yy', dtNow);
|
|
sTemp := sTemp[Length(sTemp)];
|
|
|
|
sTemp := sTemp + FormatDateTime('mmdd', dtNow);
|
|
sCode := sCode + sTemp + sTemp;
|
|
|
|
edSetCode.Text := sCode;
|
|
edEncBase64.Text := EncryptStrToBase64(edSetCode.Text, edEmpNo.Text);
|
|
edEncBinHex.Text := EncryptStrToBinStr(edSetCode.Text, edEmpNo.Text);
|
|
edResult1.Text := Copy(edEncBinHex.Text, 1, 6);
|
|
sCode := ExtrNumStr(edEncBinHex.Text);
|
|
if sCode.Length > 6 then
|
|
SetLength(sCode, 6);
|
|
edResult2.Text := sCode;
|
|
end;
|
|
|
|
procedure TDlgBs1OtpMain.btnGetCodeClick(Sender: TObject);
|
|
var
|
|
sCode: String;
|
|
i: Integer;
|
|
begin
|
|
Randomize;
|
|
|
|
for i := 0 to 5 do
|
|
sCode := sCode + IntToStr(RandomRange(0, 10));
|
|
|
|
edGenCode.Text := sCode;
|
|
end;
|
|
|
|
end.
|