![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Как можно зашифрировать текстовый файл что-бы его нельзя было открыть хотя бы через блокнот, но дельфи воспринимал его как txt файл.
Спасибо |
#2
|
||||
|
||||
![]() Нет, так нельзя, если только дельфи модифицировать как-то. Или можно написать отдельную прогу, которая сможет открывать твои шифрованые файлы.
Последний раз редактировалось Енот, 26.12.2009 в 03:27. |
#3
|
||||
|
||||
![]() Есть куча способов/методов шифрования. Гугл + вики в руки и вперёд :-) или нужен конкретный пример?
Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#4
|
|||
|
|||
![]() Цитата:
Желательно, самый простой. просто делаю тесты и не нужно что бы файл открывался просто так. А еще лучше было бы закинуть txt файл в res и читать его в дельфи. Тогда было бы вообще отлично) Последний раз редактировалось malekskv, 26.12.2009 в 14:25. |
#5
|
||||
|
||||
![]() Цитата:
От 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
|
|||
|
|||
![]() Цитата:
Будем разбираться) спасибо |
#7
|
||||
|
||||
![]() Я там чуток подправил код. Просто уже давно не имел дело с этим алгоритмом.
И еще: расшифровка и зашифровка осуществляеться одним и тем же кодом. Тоесть, первый раз запускам программу - шифруем, второй раз снова запускаем ту же программу - дешифруем. ВИ для каждого нового сообщения должен быть уникальным. И , думаю, понятно что нужно добавить проверки : если пасс будет 0-й длины, если файл будет 0-й длины и т.д.("защита от дурака"); Последний раз редактировалось Konrad, 26.12.2009 в 15:36. |
#8
|
||||
|
||||
![]() Ну это конечно не самый простой способ, посоветовал бы уже цифр цезаря или Xor какой-нибудь. Ну да лан, пусть человек разбирается :-)
Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#9
|
||||
|
||||
![]() Цитата:
Я не думаю что в 20-ти строках кода и одной таблице [0,1,2,...254,255] трудно разобраться. И почему если что-то нужно в программе зашифровать сразу все бегут ксорить?) Оно еще ничего, если делают программу для себя, но иногда эти м грешат серъезные фирмы,тогда беда... А в шифре Цезаря ключи можно и без компа перебрать) П.С.: было бы неплохо подправить код, оформить в виде функции и закинуть в исходники, что бы начинающие программеры не страдали с ксором. Правда могут быть проблемы с лицензией ![]() ![]() Последний раз редактировалось Konrad, 26.12.2009 в 22:43. |
#10
|
||||
|
||||
![]() Я отталкивался от того что человек начинающий и просит простой метод скрытия данных. Я могу и Rsa с 4090битным ключом предложить, где каждый файл будет иметь собственный открытый ключ, но зачем это. А rc4 тоже уже ломался, так что флудить не надо) в идеале рассказать бы и про хэш функции, бо я с 99%ной вероятностью взломаю твою программу за час максимум. Вопрос в оправданности использования мощных (стойких) алгоритмов шифрования, корректности их реализации и необходимости в них.
+почитай про режимы шифрования. Если блоки независимы будут (ну или шифр поточный), взломать относительно просто, в противном случае и xor может дать неплохую стойкость. Без знания деталей реализации - задолбёшься ломать перебором ;-) Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#11
|
||||
|
||||
![]() Цитата:
Цитата:
Цитата:
Уж поверь, читал и не раз. Цитата:
Последний раз редактировалось Konrad, 26.12.2009 в 22:53. |
#12
|
||||
|
||||
![]() Ну а с отладчиками ты знаком понаслышке наверное? Ведь одно дело стойкий алгоритм, а второе - как хранится пароль. Достать пароль, явно хранимый в программе, даже запакованной - не сложная задача.
давай, для эксперимента я зашифрую текст ксором (но добавлю зависимость между блоками), даже дам тебе пароль. И посмотрим за какое время ты восстановишь исходный текст. Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#13
|
||||
|
||||
![]() Не ответил на вопросы, зтато назадавал новых.
Цитата:
Цитата:
П.С: это правда противоречит принципам Керкгоффса, но это так к слову. Последний раз редактировалось Konrad, 26.12.2009 в 23:06. |
#14
|
||||
|
||||
![]() Konrad и Ferra - ребята, вы название раздела видели ? И первый пост с вопросом хорошо прочитали ?
Вы же так всю молодежь распугаете и тему автору испортите. Я не модератор, но про спрашивающего похоже забыли. |
#15
|
||||
|
||||
![]() PHP код:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |