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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2009, 00:38
malekskv malekskv вне форума
Прохожий
 
Регистрация: 13.11.2009
Сообщения: 44
Репутация: 14
По умолчанию Шифрирование txt файла

Как можно зашифрировать текстовый файл что-бы его нельзя было открыть хотя бы через блокнот, но дельфи воспринимал его как txt файл.

Спасибо
Ответить с цитированием
  #2  
Старый 26.12.2009, 00:52
Аватар для Енот
Енот Енот вне форума
Прохожий
 
Регистрация: 17.12.2009
Сообщения: 28
Репутация: 10
По умолчанию

Нет, так нельзя, если только дельфи модифицировать как-то. Или можно написать отдельную прогу, которая сможет открывать твои шифрованые файлы.

Последний раз редактировалось Енот, 26.12.2009 в 03:27.
Ответить с цитированием
  #3  
Старый 26.12.2009, 03:06
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Есть куча способов/методов шифрования. Гугл + вики в руки и вперёд :-) или нужен конкретный пример?
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #4  
Старый 26.12.2009, 14:10
malekskv malekskv вне форума
Прохожий
 
Регистрация: 13.11.2009
Сообщения: 44
Репутация: 14
По умолчанию да

Цитата:
Сообщение от Ferra
Есть куча способов/методов шифрования. Гугл + вики в руки и вперёд :-) или нужен конкретный пример?

Желательно, самый простой. просто делаю тесты и не нужно что бы файл открывался просто так.

А еще лучше было бы закинуть txt файл в res и читать его в дельфи. Тогда было бы вообще отлично)

Последний раз редактировалось malekskv, 26.12.2009 в 14:25.
Ответить с цитированием
  #5  
Старый 26.12.2009, 14:34
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от malekskv
Желательно, самый простой.
RC4.

От NSА не спасет, а вот от обычных пользователей вполне.

П.С.: описание и пример кода см. на педивикии.

На делфи где-то так: (ели память не подводит )

Код:
for i:= 0 to 255 do
begin
  S[i]:= i;
end;

j:= 0;
for i:= 0 to 255 do
begin
j:= (j + S[i] + ord(Key[i mod L])) mod 256; 
t:=S[i];
S[i]:=S[j];
S[j]:=t;
end;

j:= 0;
i:=0;
for m:=1 to N do
begin
i:= (i + 1) mod 256;
j:= (j + S[i]) mod 256;
t:=S[i];
S[i]:=S[j];
S[j]:=t;
K:= S[(S[i] + S[j]) mod 256];

C[m]:=ord(P[m]) xor ord(K);
end;

Key - ключ + ВИ(очень важный параметр, по сути от него будет зависить криптостойкость);
Р[m] - m-й символ открытого текста.
С[m] - m-й знак шифртекста.
N- длина сообщения.
S: само собой понятно array of byte;

Последний раз редактировалось Konrad, 26.12.2009 в 15:15.
Ответить с цитированием
  #6  
Старый 26.12.2009, 15:04
malekskv malekskv вне форума
Прохожий
 
Регистрация: 13.11.2009
Сообщения: 44
Репутация: 14
По умолчанию )

Цитата:
Сообщение от Konrad
RC4.

От NSА не спасет, а вот от обычных пользователей вполне.

П.С.: описание и пример кода см. на педивикии.

На делфи где-то так: (ели память не подводит )

Код:
for i:= 0 to 255
begin
  S[i]:= i;
end;

j:= 0;
for i:= 0 to 255
begin
j:= (j + S[i] + ord(Key[i mod L])) mod 256; 
t:=S[i];
S[i]:=S[j];
S[j]:=t;
end;

j:= 0;
for i:=0 to N do
begin
i:= (i + 1) mod 256;
j = (j + S[i]) mod 256;
t:=S[i];
S[i]:=S[j];
S[j]:=t;
K= S[(S[i] + S[j]) mod 256];

C[i]:=ord(P[i]) xor ord(K);
end;

Key - ключ + ВИ(очень важный параметр, по сути от него будет зависить криптостойкость);
Р[i] - i-й символ открытого текста.
С[i] - i-й знак шифртекста.

Будем разбираться) спасибо
Ответить с цитированием
  #7  
Старый 26.12.2009, 15:06
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Я там чуток подправил код. Просто уже давно не имел дело с этим алгоритмом.

И еще: расшифровка и зашифровка осуществляеться одним и тем же кодом.
Тоесть, первый раз запускам программу - шифруем, второй раз снова запускаем ту же программу - дешифруем.

ВИ для каждого нового сообщения должен быть уникальным.

И , думаю, понятно что нужно добавить проверки : если пасс будет 0-й длины, если файл будет 0-й длины и т.д.("защита от дурака");

Последний раз редактировалось Konrad, 26.12.2009 в 15:36.
Ответить с цитированием
  #8  
Старый 26.12.2009, 21:47
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Ну это конечно не самый простой способ, посоветовал бы уже цифр цезаря или Xor какой-нибудь. Ну да лан, пусть человек разбирается :-)
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #9  
Старый 26.12.2009, 22:22
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от Ferra
Ну это конечно не самый простой способ, посоветовал бы уже цифр цезаря или Xor какой-нибудь. Ну да лан, пусть человек разбирается :-)
Шифр Цезаря и ХОR ломаеться за раз. Его сломает, думаю, половина посетителей этого форума, тем более что есть программы, которые автоматически ломают шифр XOR (до паролей длиной 23 символа, кажеться). Ну а RC4 так просто не сломают, хотя его уже и не считают надежным алгоритмом. И реализация на много понятнее и компактнее, чем тот же AES.

Я не думаю что в 20-ти строках кода и одной таблице [0,1,2,...254,255] трудно разобраться.

И почему если что-то нужно в программе зашифровать сразу все бегут ксорить?) Оно еще ничего, если делают программу для себя, но иногда эти м грешат серъезные фирмы,тогда беда...

А в шифре Цезаря ключи можно и без компа перебрать)

П.С.: было бы неплохо подправить код, оформить в виде функции и закинуть в исходники, что бы начинающие программеры не страдали с ксором.
Правда могут быть проблемы с лицензией тогда лучше его изменить так, чтобы осталась только идея, а идеи как извесно нельзя патентировать

Последний раз редактировалось Konrad, 26.12.2009 в 22:43.
Ответить с цитированием
  #10  
Старый 26.12.2009, 22:44
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Я отталкивался от того что человек начинающий и просит простой метод скрытия данных. Я могу и Rsa с 4090битным ключом предложить, где каждый файл будет иметь собственный открытый ключ, но зачем это. А rc4 тоже уже ломался, так что флудить не надо) в идеале рассказать бы и про хэш функции, бо я с 99%ной вероятностью взломаю твою программу за час максимум. Вопрос в оправданности использования мощных (стойких) алгоритмов шифрования, корректности их реализации и необходимости в них.
+почитай про режимы шифрования. Если блоки независимы будут (ну или шифр поточный), взломать относительно просто, в противном случае и xor может дать неплохую стойкость. Без знания деталей реализации - задолбёшься ломать перебором ;-)
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #11  
Старый 26.12.2009, 22:51
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от Ferra
А rc4 тоже уже ломался, так что флудить не надо)
Я и не говорил что он стойкий, но если сравнивать с ксором или Цезаря.
Цитата:
Сообщение от Ferra
в идеале рассказать бы и про хэш функции, бо я с 99%ной вероятностью взломаю твою программу за час максимум.
Какую именно? RC4?(Она не моя). Хотел бы на это посмотреть.

Цитата:
Сообщение от Ferra
+почитай про режимы шифрования.

Уж поверь, читал и не раз.

Цитата:
Сообщение от Ferra
в противном случае и xor может дать неплохую стойкость. Без знания деталей реализации - задолбёшься ломать перебором ;-)
Шифр ксор стойкий?) Это о чем?

Последний раз редактировалось Konrad, 26.12.2009 в 22:53.
Ответить с цитированием
  #12  
Старый 26.12.2009, 22:59
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Ну а с отладчиками ты знаком понаслышке наверное? Ведь одно дело стойкий алгоритм, а второе - как хранится пароль. Достать пароль, явно хранимый в программе, даже запакованной - не сложная задача.

давай, для эксперимента я зашифрую текст ксором (но добавлю зависимость между блоками), даже дам тебе пароль. И посмотрим за какое время ты восстановишь исходный текст.
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #13  
Старый 26.12.2009, 23:03
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Не ответил на вопросы, зтато назадавал новых.

Цитата:
Сообщение от Ferra
Ну а с отладчиками ты знаком понаслышке наверное? Ведь одно дело стойкий алгоритм, а второе - как хранится пароль. Достать пароль, явно хранимый в программе, даже запакованной - не сложная задача.
А кто говорил что пароль будет в программе храниться?)

Цитата:
Сообщение от Ferra
давай, для эксперимента я зашифрую текст ксором (но добавлю зависимость между блоками), даже дам тебе пароль. И посмотрим за какое время ты восстановишь исходный текст.
Давай, только отрытый текст пусть будет скажем на русском и размером не менее 10 кБайт. (только плз на каком-то нормальном файло обменнике, без СМС или кредиток)

П.С: это правда противоречит принципам Керкгоффса, но это так к слову.

Последний раз редактировалось Konrad, 26.12.2009 в 23:06.
Ответить с цитированием
  #14  
Старый 26.12.2009, 23:08
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Konrad и Ferra - ребята, вы название раздела видели ? И первый пост с вопросом хорошо прочитали ?
Вы же так всю молодежь распугаете и тему автору испортите.
Я не модератор, но про спрашивающего похоже забыли.
Ответить с цитированием
  #15  
Старый 26.12.2009, 23:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

PHP код:
...И двое сошлись не на стpаха на совесть...
Макаревич Андрей 
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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