Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Вот наконец-то мы добрались до того момента, когда в ход вступают не слова, а реальные примеры и реальные коды. Ниже будет приведен код программы, написанной мною для того, чтобы дать общее понятие о криптографии, текст снабжен исчерпывающими комментариями, так что понять думаю, будет очень легко и просто.
Итак приступим.
unit main;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ShellAPI;
const key = '2147483640'; // Наш ключик ?
crname = 'crypt.fln'; // Шифрованый файлик dcrname = 'decrypt.fln'; // Востановленный (расшифрованый) файлик
type TForm1 = class(TForm) GroupBox1: TGroupBox; Button2: TButton; OpenDialog1: TOpenDialog; Button3: TButton; BitBtn1: TBitBtn; Edit1: TEdit; StaticText1: TStaticText; CheckBox1: TCheckBox; Label1: TLabel; GroupBox2: TGroupBox; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label11: TLabel; Label10: TLabel; Label12: TLabel; Button1: TButton; procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Label11Click(Sender: TObject); procedure Label10Click(Sender: TObject); procedure Label12Click(Sender: TObject);privatepublic { Public declarations }end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure Crypt (FileName : TFileName); //Процедура шифрованияvar f, f1 : File of Char; // Определяем переменные, в которых будут имена исходного и // зашифрованного файла j : Integer; i, i2 : Char;begin AssignFile (f, FileName); // Сопоставляем имя исходного файла с переменной f AssignFile (f1, crname); // и имя итогового файла с переменной f1 типов Char try {$I-} Reset (f); // Пробуем открыть файл; Rewrite (f1); // и создать макет итогового файла {$I+} finally // В случае успеха While not Eof(f) do // Открываем цикл чтения файла побитно begin Read (f, i); // Считываем текущий символ j := Ord(i) xor StrToInt(key); // Берем ASCII код символа и проводим над ним и // ключевым словом операцию «исключающее ИЛИ // (XOR)» i2 := Chr(j); // Полученный результат преобразуем в символ Write (f1, i2); // и записываем в итоговый файл. end; CloseFile (f); // Закрываем исходный CloseFile (f1); // и итоговый файлы. Form1.Label1.Caption := 'Обработан'; If Form1.CheckBox1.Checked <> True then DeleteFile (FileName); end;end;procedure Decrypt (FileName : TFileName); //Процедура дешифровки файлаvar f, f1 : File of Char; // Опять объявляем переменные j : Integer; i, i2 : Char;begin AssignFile (f, FileName); // Ассоциируем исходный (зашифрованный) AssignFile (f1, dcrname); // и итоговый (расшифрованный) файлы try {$I-} Reset (f); // Пробуем открыть Rewrite (f1); // Продуем создать {$I+} finally //Если корректно, то While not Eof(f) do // Открываем цикл чтения/записи begin Read (f, i); //Читаем символ i2 := Chr(Ord(i) xor StrToInt(key)); // Восстанавливаем символ Write (f1, i2); // и записываем его в выходной файл. end; CloseFile (f); // Закрываем исходный CloseFile (f1); // и итоговый (восстановленный) файлы end;end;procedure TForm1.Button3Click(Sender: TObject);begin Close;end;
procedure TForm1.Button2Click(Sender: TObject);begin Crypt (OpenDialog1.FileName);end;
procedure TForm1.BitBtn1Click(Sender: TObject);begin OpenDialog1.Execute; Edit1.Text := OpenDialog1.FileName; Label1.Caption := 'Новый'; Button2.Enabled := True;end;
end.