Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.21;
Скачать: CL | DM;

Вниз

Не удаётся нормально зашифровать-дешифровать сообщение...   Найти похожие ветки 

 
VoznikVopros   (2009-03-30 18:47) [0]

Пытаюсь зашифровать и дешифровать сообщение с помощью шифра сложной замены (симметричная криптосистема).
В результате дешифрованный текст оказывается неправильным... Где закрался подвох в программе? =)

Memo1 - Исходный файл text.txt
Memo2 - Файл ключа seed.txt
Memo3 - Кодированный текст ctext.txt
Memo4 - Расшифрованный текст: newtext.txt

Вот код:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   GroupBox1: TGroupBox;
   GroupBox2: TGroupBox;
   GroupBox3: TGroupBox;
   GroupBox4: TGroupBox;
   Memo1: TMemo;
   Memo2: TMemo;
   Memo3: TMemo;
   Memo4: TMemo;
   Button1: TButton;
   Button2: TButton;
   procedure GetNewSeed(N,m:Integer;FSeed:String);
   procedure Code(FileName,Seed,FNameToSaveCodedText:String;m:Integer);
   procedure Decode(FileName,Seed,FNameToSaveDecodedText:String;m:Integer);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.Code(FileName, Seed, FNameToSaveCodedText: String;
 m: Integer);
var
FPrimery, FCodedText,FCode:File of char;
X,Y,K:char;
i,j:Integer;
begin
AssignFile(FPrimery,FileName);
AssignFile(FCode,Seed);
AssignFile(FCodedText,FNameToSaveCodedText);
reset(FPrimery);
GetNewSeed(filesize(FPrimery),m,Seed);
reset(FCode);
rewrite(FCodedText);
while not EOF(FPrimery) do
begin
 read(FPrimery,X);
 read(FCode,K);
 Y:=chr((ord(X)-ord(K)) mod m);
 write(FCodedText,Y);
end;
CloseFile(FPrimery);
CloseFile(FCode);
CloseFile(FCodedText);
Memo3.Lines.LoadFromFile("ctext.txt");
end;

procedure TForm1.Decode(FileName, Seed, FNameToSaveDecodedText: String;
 m: Integer);
var
FCodedText,FCode,FDecodedText:file of char;
X,Y,K:char;
begin
AssignFile(FCodedText,FileName);
AssignFile(FCode,Seed);
AssignFile(FDecodedText,FNameToSaveDecodedText);
rewrite(FdecodedText);
reset(FCode);
reset(FCodedText);
while not EOF(FCodedText) do
begin
 read(FCodedText,Y);
 read(FCode,K);
 X:=chr((ord(Y)-ord(K)) mod m);
 write(FDecodedText,X);
end;
CloseFile(FDecodedText);
CloseFile(FCode);
CloseFile(FCodedText);
Memo4.Lines.LoadFromFile("newtext.txt");
end;

procedure TForm1.GetNewSeed(N, m: Integer; FSeed: String);
var
F:file of byte;
i:Integer;
Ki:byte;
K:String;
begin
AssignFile(F,FSeed);
rewrite(F);
Randomize;
for i:=1 to N do
begin
 Ki:=Random(m);
 write(F,Ki);
end;
CloseFile(F);
Memo2.Lines.LoadFromFile("seed.txt");
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile("text.txt");
Memo4.Lines.Clear;
Code("text.txt","seed.txt","ctext.txt",256);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Decode("ctext.txt","seed.txt","newtext.txt",256);
end;

end.


 
KilkennyCat ©   (2009-03-30 23:20) [1]

X:=(Y - K) mod m;
y = 31
k = 25
m = 256

x = ?


 
Германн ©   (2009-03-31 00:45) [2]


> VoznikVopros   (30.03.09 18:47)
>
> Пытаюсь зашифровать и дешифровать сообщение с помощью шифра
> сложной замены (симметричная криптосистема).
> В результате дешифрованный текст оказывается неправильным.
> .. Где закрался подвох в программе? =)
>
> Memo1 - Исходный файл text.txt
> Memo2 - Файл ключа seed.txt
> Memo3 - Кодированный текст ctext.txt
> Memo4 - Расшифрованный текст: newtext.txt
>

И какой диверсант (агент ЦРУ, Ми-5, Моссада ?) тебя научил помещать шифровки в TMemo?
И кто тебя учил Паскалю и Делфи?



Страницы: 1 вся ветка

Текущий архив: 2010.02.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
15-1259928321
ВадимММ
2009-12-04 15:05
2010.02.21
Сужение цветов


11-1174919254
ElectriC
2007-03-26 18:27
2010.02.21
Горизонтальная полоса прокрутки в ListBox


11-1190008553
Nikfel
2007-09-17 09:55
2010.02.21
Как добавить изображение в TKolPopupMenu.


4-1229348213
Wadimka
2008-12-15 16:36
2010.02.21
Есть чужое приложение и есть на нем непонятные кнопки


2-1261470757
JohnKorsh
2009-12-22 11:32
2010.02.21
Вопрос по TCPServer. (INDY)