Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Шифрование файлов   Найти похожие ветки 

 
I am   (2005-12-15 18:28) [0]

Здравствуйте. Подскажите, плиз, каким образом осуществляют шифрование данных "умные" программы.
Я пытался, воспользовавшись компонентом HexEditor перекинуть код файла в мемо, там его обработать и вернуть данные в editor, но этот процесс занимает много времени. Понимаю, что способ этот один из самых нерациональных, и прошу у вас помощи в решении данного вопроса.
Заранее спасибо.


 
Jeer ©   (2005-12-15 18:49) [1]

Начни с описания задачи.


 
I am   (2005-12-15 18:51) [2]

Описываю.
Пытаюсь методом научного тыка научиться шифровать файлы :).
Нашел способ указанный выше.
Интересуют уже существующие методы шифрования или же рекомендации по оптимизации вышеуказанного варианта...


 
Vlad ©   (2005-12-15 19:02) [3]


> I am   (15.12.05 18:51) [2]

А расшифровывать их потом надо?


 
I am   (2005-12-15 19:04) [4]

2 Vlad: да, хотелось бы :)


 
Vlad ©   (2005-12-15 19:16) [5]


> I am   (15.12.05 19:04) [4]

Один из вариантов - посимвольно, с помощью xor
Вот, например - простенько и со вкусом :-)
http://kladovka.net.ru/delphibase/?action=viewfunc&topic=strcode&id=10081


 
konrads   (2005-12-16 07:03) [6]

Можно сделать так.
Делаем генератор псевдослучайной последовательности например такой:

Глобальная переменная
var Rec : Array[1..128] of byte;

// Функция при каждом новом вызове возвращает
// псевдослучайное число

function  TForm1.OutByte : byte;
var i,j : integer;
begin
 j := 0;
// Количество строчек написанных ниже, и индексы
// массива Rec определяет неповторимость псевдослучайной
// последовательности наряду с начальной инициализацией
// массива Rec
   j := j + Rec[2];
   j := j + Rec[10];
   j := j + Rec[15];
   j := j + Rec[16];
   j := j + Rec[21];
   j := j + Rec[28];
   j := j + Rec[33];
   j := j + Rec[41];
   j := j + Rec[49];
   j := j + Rec[56];
   j := j + Rec[64];
   j := j + Rec[87];
   j := j mod 255;
 for i := 127 downto 1 do rec[i+1] := rec[i];
 Rec[1] := j;
 result := j;
end;

// Начальная инициализация массива Rec
// Параметр S - наш ключ
Procedure TForm1.InitRec(S:String);
var i : integer;
begin
 for i := 1 to 128 do rec[i] := i;
 for i := 1 to Length(s) do Rec[i] := Byte(s[i]);
 for i := 1 to 128 do OutN;
end;

// Теперь могём пользоваться
// Данная процедура кодирует любой файл
// и декодирует ранее закодированый
// Form2 - имеет Кнопки открыть и сохранить
// открывающие соответственно OpenDialog
// и SaveDialog а также BitBtn1.Kind = bkOk
// и BitBtn1.Kind = bkCancel и Edi1 для ввода
// ключевого слова длинной не больше 128
Procedure Form1.CodeDecodeFile;
var F1,F2 : File of Byte;
    b: Byte;
begin
 Form2.ShowModal;
 if Form2.ModalResult <> mrOk then exit;
 InitRec(Form2.Edit1.Text);
 AssignFile(F1,Form2.OpenDialog1.FileName);
 AssignFile(F2,Form2.SaveDialog1.FileName);
 Reset(F1); Rewrite(F2);
 While not Eof(F1) do begin
    Read(F1,b);
    b := b xor OutByte;
    Write(F2,b);
 end;
 CloseFile(F1);
 CloseFile(F2);
end;


 
evvcom ©   (2005-12-16 09:06) [7]


> Пытаюсь методом научного тыка

Найди лучше примеры шифровальщиков и литературу, описывающую данные методы. Это будет полезнее.


 
Dmitrij_K   (2005-12-16 11:47) [8]

например здесь есть > http://acedutils.narod.ru/



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
14-1134055758
VirEx
2005-12-08 18:29
2006.01.01
Delphi Eggs


2-1134596605
x.pro
2005-12-15 00:43
2006.01.01
DLL, весь день бошкой о стену бюсь...


4-1130277153
alexproger
2005-10-26 01:52
2006.01.01
Как обнаружить сканер


9-1122331384
ink
2005-07-26 02:43
2006.01.01
Как вывести большую поверхность?


1-1133506673
denmin
2005-12-02 09:57
2006.01.01
Как запустить этот долбанный Rave на выполнение?