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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2013, 04:30
nano_bot nano_bot вне форума
Новичок
 
Регистрация: 05.05.2013
Сообщения: 62
Версия Delphi: Delphi 7
Репутация: 10
Вопрос Шифрование файлов

Здравствуйте! Я новичок в делфи, так что не кидайтесь! На сколько я понимаю, при чтении файла в stream этот файл, в конечном счете, будет СТРОКОЙ определенной длины и определенного содержания (символы, цифры и тд.). Так вот, я хочу написать шифратор (и соответственно дешифратор) данных путем вставки через определенное кол-во символов в stream какой-либо мусор, допустим пару цифр. Вопрос - верна ли моя теория и на верном ли я пути?
Ответить с цитированием
  #2  
Старый 05.05.2013, 04:50
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D 0%B0%D1%84%D0%B8%D1%8F
http://www.webdelphi.ru/2010/05/krip...ndy-i-synapse/ - Алгоритм MD5, Алгоритм Base64 и т.п.
Почитай мжт что пригодится...
__________________
Все смелые до begin...

Последний раз редактировалось DrGeorg, 05.05.2013 в 04:54.
Ответить с цитированием
Этот пользователь сказал Спасибо DrGeorg за это полезное сообщение:
nano_bot (06.05.2013)
  #3  
Старый 05.05.2013, 05:07
nano_bot nano_bot вне форума
Новичок
 
Регистрация: 05.05.2013
Сообщения: 62
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо конечно, но первую статью я уже читал, а по поводу 2ой- мне нужно зашифровать файлы именно тем способом , который я предложил, если это конечно возможно!
Ответить с цитированием
  #4  
Старый 05.05.2013, 05:20
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Я так понял вам нужен свой собственный алгоритм?
А чем-же стандартные не устраивают? Можно в несколько проходов шифровать и (или) комбинировать алгоритмы...
Просто писать свой алгоритм - очень хлопотное дело...
Спросите здесь кого-еще может вам помогут...
P.S. Любая строка (строковые данные) в потоке (stream) отображаются как данные (бинарные), например "Hello world!" будет отображаться как: 48 65 6C 6C 6F 72 6C 64 21 (в переводе на шестнадцатеричную систему счисления)
__________________
Все смелые до begin...

Последний раз редактировалось DrGeorg, 05.05.2013 в 05:39.
Ответить с цитированием
Этот пользователь сказал Спасибо DrGeorg за это полезное сообщение:
nano_bot (06.05.2013)
  #5  
Старый 05.05.2013, 09:34
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Берешь бумажку, карандаш и рисуешь, что хочешь в конечном итоге (блок схему или что тебе удобнее), все, дальше дело кодинга только.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
Bargest (05.05.2013)
  #6  
Старый 05.05.2013, 14:35
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Вопрос - верна ли моя теория и на верном ли я пути
Верна в каком плане? В плане того, что это будет сложно/невозможно прочитать - нет. Прочитать это будет немногим сложнее обычного текста. Закономерность найдется почти сразу, особенно если знать исходную строку (скормить программе что-нибудь свое и посмотреть на результат).
В плане того, что это будет работать - да, будет. Только это скорее не шифровка, а обфускация (усложнение чтения).
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 05.05.2013 в 14:39.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
nano_bot (06.05.2013)
  #7  
Старый 06.05.2013, 12:15
nano_bot nano_bot вне форума
Новичок
 
Регистрация: 05.05.2013
Сообщения: 62
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Всем спасибо за ответы!
Ответить с цитированием
  #8  
Старый 06.05.2013, 13:45
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Кстати, по теме, если уж делать обфускацию: в одной проге видел, как китайцы URL обфусцировали. Взяли строку http://блаблабла.cn/какой-то_адрес/рекламка.php, записали в обратном порядке (т.е. php.акмалкер/серда_от-йокак/nc.албалбалб//tth) и после каждого символа вставили два случайных. Тут действительно сразу было не понять, что за ерунда. Однако по обращениям к строке можно было быстро отловить алгоритм и, как следствие, вытащить строку.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #9  
Старый 08.05.2013, 04:19
nano_bot nano_bot вне форума
Новичок
 
Регистрация: 05.05.2013
Сообщения: 62
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Bargest, есть еще варианты как усложнить обфускацию?
Ответить с цитированием
  #10  
Старый 08.05.2013, 04:25
nano_bot nano_bot вне форума
Новичок
 
Регистрация: 05.05.2013
Сообщения: 62
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Да и все-таки, мне кажется, предложенный мною метод обфускации, в конечном счете можно обойти, там же всеравно определенная последовательность-то будет, которую можно выявить
Ответить с цитированием
  #11  
Старый 08.05.2013, 04:28
nano_bot nano_bot вне форума
Новичок
 
Регистрация: 05.05.2013
Сообщения: 62
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Bargest, а вот как вам такой способ - читаем файл, затем в рандомных местах вставляем рандомный мусор, и эти рандомы выдаем пользователю как ключ? Просчитать этот алгоритм можно, но толку-то не будет!

Последний раз редактировалось nano_bot, 08.05.2013 в 04:33.
Ответить с цитированием
  #12  
Старый 08.05.2013, 07:09
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

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

Код:
uses
Math;
...

function TxtObfus(ds: string): string;
 function stk(ds: char): string;
   const m: array [0..2] of array [1..3] of integer = ((1,2,3),(3,1,2),(2,3,1));
  var i: byte;
   begin
    Result:='123'; i:= Random(3);
    Result[m[i,1]]:= ds;
    Result[m[i,2]]:= chr(RandomRange(byte(ds),255));
    Result[m[i,3]]:= chr(RandomRange(byte(ds),255));
   end;

 var i: integer;
begin
 Randomize; Result:='';
 for i:=1 to Length(ds) do Result:= Result + stk(ds[i]);
end;

function ObfusTxt(ds: string): string;
 function mx(b1, b2, b3 : byte): byte;
  begin
   if b1 < b2 then Result:= b1 else Result:= b2;
   if Result > b3 then Result:= b3;
  end;

 var i: integer; s: string;
begin
 Result:=''; i:=1;
 while i <= Length(ds) do
  begin
   Result:= Result+chr(mx(byte(ds[i]),byte(ds[i+1]),byte(ds[i+2])));
   inc(i, 3);
  end;
end;
Здесь обработка идёт триадами, но кол-во мусора легко и увеличить. Для проверки, на форму надо кинуть 3 едита и 2 баттона, а в коде дальше так

Код:
procedure TForm1.Button1Click(Sender: TObject);
 begin
 Edit2.Text:= TxtObfus(Edit1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Edit3.Text:= ObfusTxt(Edit2.Text);
end;
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
nano_bot (08.05.2013)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter