unit U_CriptDecript; interface uses Forms, Math, StdCtrls, Controls, Classes; type TMainWindow = class(TForm) Label1: TLabel; Cript_Input_Edit: TEdit; Label2: TLabel; Decript_Input_Edit: TEdit; Cript_Output_Edit: TEdit; Label3: TLabel; Label4: TLabel; Decript_Output_Edit: TEdit; procedure Cript_Input_EditChange(Sender: TObject); procedure Decript_Input_EditChange(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainWindow: TMainWindow; implementation {$R *.dfm} procedure CriptDecript(cript: boolean; input: string; var texto: string); var i, x: integer; begin for i := 1 to Length(input) do begin x := Trunc(1*Power(i, 5) + 5*Power(i, 4) + 1*Power(i, 3) + 2*Power(i, 2) + 7*Power(i, 1) + 1); if (cript) then texto := texto + Char((x + Ord(input[i])) mod 256) else texto := texto + Char(Ord(input[i]) - x); end; end; { CriptDecript } procedure TMainWindow.Cript_Input_EditChange(Sender: TObject); var texto: string; begin CriptDecript(true, Cript_Input_Edit.Text, texto); Cript_Output_Edit.Text := texto; end; { TMainWindow.Cript_Input_EditChange } procedure TMainWindow.Decript_Input_EditChange(Sender: TObject); var texto: string; begin CriptDecript(false, Decript_Input_Edit.Text, texto); Decript_Output_Edit.Text := texto; end; { TMainWindow.Decript_Input_EditChange } end.