Главная страница
    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.006 c
2-1261250556
POOP
2009-12-19 22:22
2010.02.21
Помогите, пожалуйста с префиксной формой...


15-1259928321
ВадимММ
2009-12-04 15:05
2010.02.21
Сужение цветов


15-1260343163
TRSteep
2009-12-09 10:19
2010.02.21
Обратное проектирование баз


15-1260394219
Юрий
2009-12-10 00:30
2010.02.21
С днем рождения ! 10 декабря 2009 четверг


6-1212331478
Антон
2008-06-01 18:44
2010.02.21
перехват http





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