Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как зашифровать txt-файл? 
:(
    Опции темы
Гость_Forelli
Дата 21.9.2004, 22:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть ли возможность зашифровать текстовый файл, чтобы при открытии в блокноте там были всякие каракули?
  Вверх
p0s0l
Дата 21.9.2004, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



А как тебе шифровать-то ?
Поди просто xor'oм пройтись, этого хватит ? Накидал простой пример:
Код

procedure XorFile (const FileName : string; Key : byte);
var
 hFile, hMap : THandle;
 Buf : PByteArray;
 i : DWORD;

begin
 hFile := FileOpen (FileName, fmOpenReadWrite or fmShareDenyNone);
 hMap := CreateFileMapping (hFile, nil, PAGE_READWRITE, 0, 0, nil);
 Buf := MapViewOfFile (hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
 if Buf <> nil then
   for i := 0 to GetFileSize(hFile, nil)-1 do Buf[i] := Buf[i] xor Key;
 UnmapViewOfFile (Buf);
 CloseHandle (hMap);
 CloseHandle (hFile);
end;

При первом вызове XorFile ('c:\1.txt', 123) файл зашифруется, при втором - расшифруется...
Хотя в данном случае "шифр" - громко сказано...



--------------------
С уважением, г-н Посол.
PM   Вверх
Cashey
Дата 22.9.2004, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 2
Всего: 60



Можно еще алгоритм Цезаря, поменять символы на другие, находящиеся от исходных на заданное число ASII кода.


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Jey_k
Дата 22.9.2004, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Cashey Ломается запросто.

Можно сгенерировать ПСП например:
Xi=(Xi-1*a+c)mod 256, где a и С какие-то известные числа(контрольная сумма пароля и число символов в нем например) лучше если числа взаимно простые
А потом сложить коды символов исходного текста с элементами ПСП, например:
A*=(A+Xi)mod 256


--------------------
PM MAIL WWW   Вверх
S.A.P.
Дата 22.9.2004, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Если программу шифрования будешь только сам использовать, то можно просто подставлять все символы по своей таблице. В таком случае число всех возможных подстановок будет n!. Если взять за n число символов в ASCLL то получиться где то 256!=8,578e+506. Следовательно, если даже знать принцип шифрования, то перебрать все возможные комбинации будет затруднительно.
Добавлено @ 13:13
А если будешь преобразовывать каджую комбинацию из 2-х символов и больше.....

PM MAIL   Вверх
maxim1000
Дата 22.9.2004, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 4
Всего: 110



подобные шифры ломают обычно не перебором, а статистикой


--------------------
qqq
PM WWW   Вверх
Jey_k
Дата 22.9.2004, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



maxim1000
ты ошибаешься. Подобные шифры усредняют АКФ по количеству символов, статистика крайне затруднена. Я играл на этом в своем дипломе.



--------------------
PM MAIL WWW   Вверх
Cashey
Дата 22.9.2004, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 2
Всего: 60



Jey_k Да это понятно, что ломается быстро - один из древнейших способов криптографии.
Если нужно, что-то серьезное, то надо пропускать текст через ХЭШ-функции.



--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Pakshin A. S.
Дата 22.9.2004, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Массивы типа:
array ['A'..'Z'] of char;
array ['0'..'9'] of char;
и т. п.

Каждый элемент массива - код индекса массива типа char;
NewCh:=ARaz[OldCh];

PM   Вверх
maxim1000
Дата 22.9.2004, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 4
Всего: 110



Цитата
maxim1000
ты ошибаешься. Подобные шифры усредняют АКФ по количеству символов, статистика крайне затруднена. Я играл на этом в своем дипломе.

это я отвечал на:
Цитата
Если программу шифрования будешь только сам использовать, то можно просто подставлять все символы по своей таблице. В таком случае число всех возможных подстановок будет n!. Если взять за n число символов в ASCLL то получиться где то 256!=8,578e+506. Следовательно, если даже знать принцип шифрования, то перебрать все возможные комбинации будет затруднительно.
Добавлено @ 13:13
А если будешь преобразовывать каджую комбинацию из 2-х символов и больше.....



--------------------
qqq
PM WWW   Вверх
S.A.P.
Дата 22.9.2004, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



maxim1000, ради интереса я могу написать програму шифрования по этому принципу и зашифровать какой нибудь текст. Просто интересно сколько потребуется времени шифр сломать smile.gif .
PM MAIL   Вверх
maxim1000
Дата 22.9.2004, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 4
Всего: 110



все зависит от размера файла (будет большой и осмысленный - легко)
а вообще, у нас были такие лабы по криптографии...


--------------------
qqq
PM WWW   Вверх
Jey_k
Дата 22.9.2004, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Если надо дам линк на мою прогу с диплома


--------------------
PM MAIL WWW   Вверх
Marriage
Дата 23.9.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



Есть специальные компоненты с DES или AES , поищи ..
Валялись где-то в нете


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 23.9.2004, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Код

const Base64Table = 'ABCD...Zabsd...z0...9+/';

function Decode(cStr: string):string;
var
DecStr: string;
RecordLine: array [1..76] of byte;
f1, f2: word;
l: integer;
begin
l:=Length(cStr);
Result:='';
for f1:=1 to l do
if cStr[f1] = '=' then RecodeLine[f1]:=0
else RecodeLine[f1]:=pos(cStr[f1], Base64Table) -1;
f1:=1;
while f1 < Length)Cstr) do begin
DecStr:=chr(byt(recodeLine[f1] shl 2) + RecodeLine[f1 + 1] shr 4) + chr(byte(RecodeLine[f1+1] shl 4) + RecodeLine[f1 + 2] shr 2) + chr(byte(RecodeLine[f1 + 2] shl 6) + RecodeLine[f1 + 3]);
Result:=Result + DecStr;
inc(f1, 4);
end;
end;

Что-то в этом духе...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0734 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.