Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 28.05.2014, 19:28
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Совет: на время оттключите ваш криптоалгол и попробуйте просто считать содержимое файла в файл-поток - если удастся это сделать, то движение можно продолжить
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
alyan (29.05.2014)
  #17  
Старый 29.05.2014, 07:42
alyan alyan вне форума
Прохожий
 
Регистрация: 22.05.2014
Сообщения: 8
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Совет: на время оттключите ваш криптоалгол и попробуйте просто считать содержимое файла в файл-поток - если удастся это сделать, то движение можно продолжить

Алгорим переписал. отладкой проверил. шифрует правильно.

но осталась еще одна проблема. Запись данных в файлы пробую по разному. Например, простой ключ, сгенерированный рандомом
ТАК

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:byte; f:file;
begin   randomize;
AssignFile(f,'key.txt');
rewrite(f);
for i:=0 to 9 do
              begin
              k[i]:=random(255);
              Blockwrite(f,k[i],1);
              Edit1.Text:=edit1.Text+' ';
              edit1.Text:=edit1.Text+inttostr(k[i]);
              end;

end;

И ВОТ ТАК

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:byte; f:TFileStream;
begin   randomize;
f:=TFileStream.Create('key.txt',fmCreate);
f.Position:=0;
for i:=0 to 9 do
              begin
              k[i]:=random(255);
              f.Write(k[i],sizeof(k[i]));
              Edit1.Text:=edit1.Text+' ';
              edit1.Text:=edit1.Text+inttostr(k[i]);
              end;

end;


Но, в обоих случаях когда открываю файлы блокнотом, там какие-то иероглифы. Может с кодировкой чёто надо сделать?
Ответить с цитированием
  #18  
Старый 29.05.2014, 10:12
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от alyan
но осталась еще одна проблема. Запись данных в файлы пробую по разному. Например, простой ключ, сгенерированный рандомом
ТАК

Код:
.....
              k[i]:=random(255);
              Blockwrite(f,k[i],1);
.....
Но, в обоих случаях когда открываю файлы блокнотом, там какие-то иероглифы. Может с кодировкой чёто надо сделать?
Естественно там будут всевозможные 8-битные символы, ты же символ генерируешь из диапазона 0..254, а в этот диапазон входят и цифры, и буквы, и знаки препинания, и другие спецсимволы включая управляющие.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
vankai14 (29.05.2014)
  #19  
Старый 29.05.2014, 10:18
vankai14 vankai14 вне форума
Прохожий
 
Регистрация: 15.04.2014
Сообщения: 24
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Естественно там будут всевозможные 8-битные символы, ты же символ генерируешь из диапазона 0..254, а в этот диапазон входят и цифры, и буквы, и знаки препинания, и другие спецсимволы включая управляющие.

Ясно, тогда подскажите плиз, другая проблема. я в прогу загружаю файл, шифрую и записываю назадю например, изображение или тхт файл. в итоге файл тоже неадекватный получается после расшифровки

Код:
ssignFile(OpenF, Edit3.text);
reset(OpenF,1);

num8:=FileSize(openf) div 8;

ost:=Filesize(OpenF)-num8*8;

if (ost=0) then num8:=num8-1;

for n:=0 to num8 do
     for m:=0 to 7 do Blockread(openf,blockin[n,m],1);

if (ost>0) then begin
                for m:=0 to (ost-1) do Blockread(openf,blockin[n+1,m],1);
                for m:=ost to 7 do Blockread(openf,blockin[n+1,m],1);
                end;

  CloseFile(OpenF);

потом много перестановок и замен и в конце запись

Код:
for cicle:=0 to num8 do
     for x:=0 to 7 do BlockWrite(CloseF,blockout[cicle,x],1);

 CloseFile(CloseF);


я так понимаю, что я неправильно записываю данные?
Ответить с цитированием
  #20  
Старый 29.05.2014, 10:31
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от vankai14
Ясно, тогда подскажите плиз, другая проблема. я в прогу загружаю файл, шифрую и записываю назадю например, изображение или тхт файл. в итоге файл тоже неадекватный получается после расшифровки
.....
потом много перестановок и замен и в конце запись
.....
я так понимаю, что я неправильно записываю данные?
Сначала попробуй, как советует Alegun, закомментировать шифрующую часть программы и выполнить запись без всех этих перестановок и замен - если выходной файл не будет идентичный входному, то значит неправильно записываешь данные, если же файлы будут идентичные, то ошибка в шифраторе/дешифраторе.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
vankai14 (29.05.2014)
  #21  
Старый 29.05.2014, 10:34
vankai14 vankai14 вне форума
Прохожий
 
Регистрация: 15.04.2014
Сообщения: 24
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Сначала попробуй, как советует Alegun, закомментировать шифрующую часть программы и выполнить запись без всех этих перестановок и замен - если выходной файл не будет идентичный входному, то значит неправильно записываешь данные, если же файлы будут идентичные, то ошибка в шифраторе/дешифраторе.

а как правильно записывать?

Последний раз редактировалось vankai14, 29.05.2014 в 10:39.
Ответить с цитированием
  #22  
Старый 29.05.2014, 10:39
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от vankai14
а как правильно записывать? я многочасов отлаживал шифрование с тетрадью и ручкой, согласно алгоритму. всё там верно
Может в алгоритме шифровки всё верно, а ошибка в алгоритме дешифровки.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter