Главная страница
    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.46 MB
Время: 0.005 c
13-1124465855
FUNKy
2005-08-19 19:37
2010.02.21
DataSet + WebService + ASP.NET + Delphi 2005 = трабл


15-1258018282
Максимильянов
2009-11-12 12:31
2010.02.21
Работа МФУ HP LJ M1120n MFP в сети


15-1260749938
Kerk
2009-12-14 03:18
2010.02.21
Ленин в мозгах поколения ЕГЭ


2-1261124358
Burger
2009-12-18 11:19
2010.02.21
Удаление экземпляра объекта


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский