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

📄 fm_key.pas

📁 本软件由中国电子标签网www.rfid.org.cn 收集整理
💻 PAS
字号:
unit Fm_Key;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, se_controls, KsSkinForms, Grids, hexeditor, KsSkinPanels,
  KsSkinGroupBoxs, KsSkinEdits, KsSkinComboBoxs, KsSkinButtons,
  KsSkinLabels, ksskinmessages;

type
  Tfmkey = class(TForm)
    SeSkinForm1: TSeSkinForm;
    SeSkinComboBox1: TSeSkinComboBox;
    SeSkinEdit1: TSeSkinEdit;
    SeSkinRadioGroup1: TSeSkinRadioGroup;
    SeSkinComboBox2: TSeSkinComboBox;
    SeSkinPanel1: TSeSkinPanel;
    SeSkinEdit2: TSeSkinEdit;
    SeSkinEdit3: TSeSkinEdit;
    SeSkinLabel1: TSeSkinLabel;
    SeSkinLabel2: TSeSkinLabel;
    SeSkinEdit4: TSeSkinEdit;
    SeSkinLabel3: TSeSkinLabel;
    SeSkinButton1: TSeSkinButton;
    SeSkinButton2: TSeSkinButton;
    SeSkinForm2: TSeSkinForm;
    SeSkinMessage1: TSeSkinMessage;
    procedure SeSkinComboBox2Change(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SeSkinRadioGroup1Click(Sender: TObject);
    procedure SeSkinButton2Click(Sender: TObject);
    procedure SeSkinButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    AutoAuth:Boolean;
  end;

var
  fmkey: Tfmkey;

implementation
  uses fm_main,advic32,destool;
{$R *.dfm}

procedure Tfmkey.SeSkinComboBox2Change(Sender: TObject);
begin
    Case SeSkinComboBox2.ItemIndex of
       0:   SeSkinEdit1.Text:='FFFFFFFFFFFF';
       1:if SeSkinRadioGroup1.ItemIndex=0 then
             SeSkinEdit1.Text:='A0A1A2A3A4A5'
         else SeSkinEdit1.Text:='B0B1B2B3B4B5';
       2:   SeSkinEdit1.Text:='';
    End;
end;

procedure Tfmkey.FormShow(Sender: TObject);
var
i:integer;
begin
    for i:=0 to 63 do
      SeSkinComboBox1.Items.Add('扇区'+IntToStr(i));
    SeSkinComboBox1.ItemIndex:=0;
end;

procedure Tfmkey.SeSkinRadioGroup1Click(Sender: TObject);
begin
     if  SeSkinComboBox2.ItemIndex=1 then
       if SeSkinRadioGroup1.ItemIndex=0 then
             SeSkinEdit1.Text:='A0A1A2A3A4A5'
         else SeSkinEdit1.Text:='B0B1B2B3B4B5';
end;

procedure Tfmkey.SeSkinButton2Click(Sender: TObject);
var
mode,sector:integer;
KEY:array[0..5]of byte;
ret,i:integer;
begin
   if SeSkinRadioGroup1.ItemIndex=0 then mode:=KEYA
   else mode:=KEYB;
   for i:=0 to 5 do
     KEY[i]:=StrToInt('$'+Copy(SeSkinEdit1.Text,i*2+1,2));
   Sector:=SeSkinComboBox1.ItemIndex;
   ret:=RFMifare_LoadKey(mode,sector,KEY[0]) ;
   if ret<>0 then
      SeSkinMessage1.showmessage('密码认证失败')
   else
      SeSkinMessage1.Showmessage('密码认证成功!');

{
   if SeSkinComboBox1.ItemIndex<>0 then
     begin
       Sector:=SeSkinComboBox1.ItemIndex-1;
       ret:=RFMifare_LoadKey(mode,sector,KEY[0]);

     end
   else
     begin
       for i:=0 to 63 do
        begin
         Sector:=i;
         ret:=RFMifare_LoadKey(mode,sector,KEY[0]);
         if ret<>0 then
           begin
             showmessage('密码下载失败');
             break;
           end;
        end;
     end;
 }
end;

procedure Tfmkey.SeSkinButton1Click(Sender: TObject);
var
data:array[0..7]of byte;
key:array[0..15]of byte;
i,ret:integer;
begin
     for i:=0 to 15 do
     KEY[i]:=StrToInt('$'+Copy(SeSkinEdit3.Text,i*2+1,2));
     for i:=0 to 7 do
     data[i]:=StrToInt('$'+Copy(SeSkinEdit2.Text,i*2+1,2));
     ret:=   TriDES_Encrypt(@data,@key);
     if ret=0 then
     begin
       SeSkinEdit4.Text:='';
       for i:=0 to 7 do
         SeSkinEdit4.Text:=SeSkinEdit4.Text+IntToHex(data[i],2);
     end
     else
       SeSkinMessage1.showmessage('密码计算失败')
end;

end.

⌨️ 快捷键说明

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