Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
3-1235049122
Ragazor
2009-02-19 16:12
2010.02.21
Вопросы оптимальности и производительности


2-1261080765
Б
2009-12-17 23:12
2010.02.21
Как определить у окна WS_EX_TOPMOST?


6-1212600148
Real
2008-06-04 21:22
2010.02.21
TWebBrowser - организовать preview html-кода


15-1260336729
Думкин
2009-12-09 08:32
2010.02.21
Компьютерра пока


3-1235540952
DelphiN!
2009-02-25 08:49
2010.02.21
Автоматическое закрытие pfIbDataSet перед изменением SQL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский