unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
DCPdes, DCPrc4, DCPsha1;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
DCP_rc4_1: TDCP_rc4;
DCP_sha1_1: TDCP_sha1;
Label1: TLabel;
Label2: TLabel;
Lbl_Algoritmo: TLabel;
Txt_In: TEdit;
Txt_Out: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
{procedura che cifra una stringa}
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
Cipher: TDCP_rc4;
KeyStr: string;
begin
KeyStr:= '';
if InputQuery('Passphrase','Inserisci la passphrase',KeyStr) then // richiedo la passphrase per cifrare la stringa
begin
Cipher:= TDCP_rc4.Create(Self);
Cipher.InitStr(KeyStr,TDCP_sha1); // inizializzare il cifrario con un hash della password
Txt_Out.Text := Cipher.EncryptString(Txt_In.Text); //cifro il testo contenuto nella TEdit di nome Txt_In e metto il risultato nella TEdit Txt_Out
Lbl_Algoritmo.Caption:= Cipher.GetAlgorithm; //visualizzo quale algoritmo ho usato in una TLabel di nome Lbl_Algoritmo
Cipher.Burn;
Cipher.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
Cipher: TDCP_rc4;
KeyStr: string;
begin
KeyStr:= '';
if InputQuery('Passphrase','Inserisci la passphrase',KeyStr) then // richiedo la passphrase per cifrare la stringa
begin
Cipher:= TDCP_rc4.Create(Self);
Cipher.InitStr(KeyStr,TDCP_sha1); // inizializzare il cifrario con un hash della password
Txt_Out.Text := Cipher.DecryptString(Txt_In.Text); //decifro il testo contenuto nella TEdit di nome Txt_In e metto il risultato nella TEdit Txt_Out
Lbl_Algoritmo.Caption:= Cipher.GetAlgorithm; //visualizzo quale algoritmo ho usato in una label di nome Lbl_Algoritmo
Cipher.Burn;
Cipher.Free;
end;
end;
end.