Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
MMMx   (2005-02-06 21:39) [0]

Как сделать так чтобы во время не работы программы файл (10-100 МБ) был в зашифрованном виде (от шифрования требуется только чтобы рядовой пользователь не смог его открыть с помощью программы просмоторщика), а когда программа запускается, то расшифровывался.


 
Vit@ly ©   (2005-02-06 21:47) [1]

А в чем собственно проблема?
Зашифруй это файл раз и навсегда, любым понравившимся способом. А при обращении (чтении) к нему из программы, расшифровывай тем же способом


 
MMMx   (2005-02-06 22:34) [2]

Я это и хочу. Вот только я ни чего не понимаю в криптографии. Мне надо самый элементарный код шифрования, времени на изучение криптографии нет – нужно сдавать проект. Если не сложно дайте самый простой алгоритм шифрования файла или подскажите где найти.


 
begin...end ©   (2005-02-06 22:41) [3]

> [2] MMMx   (06.02.05 22:34)

Самый простой метод "шифрования" - простая замена символов в тексте. Например, на следующий в алфавите: "а" в исходном тексте заменяется на "б", и т.д. При расшифровке всё происходит в обратном порядке. Но такое шифрование защитит, наверное, только от детей :-)

Немного сложнее алгоритм шифрования с помощью логической операции xor. Там ещё понадобится где-то хранить ключ. Сделайте поиск в Яндексе по словам "шифрование xor". В Сети достаточно как примеров готового кода, так и теории этого метода.


 
Anatoly Podgoretsky ©   (2005-02-06 22:43) [4]

Элементарный код шифрования выгдядит например так A[i] := A[i] + 1


 
Defunct ©   (2005-02-07 02:37) [5]

MMMx   (06.02.05 22:34) [2]

и шифрование и расшифрование:

A[i] := A[i] XOR $FF;


 
ordik ©   (2005-02-07 02:46) [6]

var
i,j: integer;s:char;
begin
j:=0;
i:=1;
s:=" ";
lala:="A:\"+oo+".txt";
begin
AssignFile(a,lala);
{$I-}
Reset(a,1);

while not eof(a) do
begin
blockread(a,s,1);
if i>length(cryptmask) then i:=1;
s:=char(ord(s) xor ord(cryptmask[i]));
seek(a,j);
i:=i+1;
j:=j+1;
Blockwrite(a,s,1);
end;
CloseFile(a);
{$I+}
end;
end;


 
ordik ©   (2005-02-07 02:49) [7]

Файл может быть любой.


 
Defunct ©   (2005-02-07 03:03) [8]

ordik ©   (07.02.05 02:46) [6]

это типа конкурс кто медленнее зашифрует?
Зачем читать-то по одному байту?


 
ordik ©   (2005-02-07 03:13) [9]

> Defunct ©   (07.02.05 03:03) [8]
Код с незапамятных времен лежал в готовом виде :)


 
Defunct ©   (2005-02-07 03:25) [10]

ordik ©   (07.02.05 03:13) [9]

ну дык, пора уже его апгрейдить :)


 
ordik ©   (2005-02-07 03:30) [11]

Defunct ©   (07.02.05 03:25) [10]
Вот я к тому и приступил :)

MMMx   (06.02.05 21:39)
На всякий случай :)
var
cryptmask: string="любые символы"


 
Slym ©   (2005-02-07 05:25) [12]

А зачем все сразу расшифровывать?
Если используются потоки (TStream) лучше написать CryptoStreamAdapter (примочка к стреаму) в нем и расшифровывать.
Преимущества:
1. Файл всегда зашифрован.
2. Нетребуется долгая процедура расшифровки всего файла.
3. Шифровка/дешифровка по запросу (Read/Write)

Пример (псевдокод)

CryptoStreamAdapter =class(stream)
FStream:TStream;
function Read(...);override;
function Write(...);override;

constructor Create(Stream:TStream);oveeride;

Create;
begin
FStream:=Stream;
end;

function Read(Buf);override;
begin
inherited (Buf)
Decrypt(Buf);
end;

function Write(Buf);override;
begin
inherited (Buf)
Encrypt(Buf);
end;



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

Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.039 c
3-1106036213
zunder
2005-01-18 11:16
2005.02.20
SQL parser


14-1107201670
Ломброзо
2005-01-31 23:01
2005.02.20
+1!


14-1107241397
wal
2005-02-01 10:03
2005.02.20
О том, как программисты обрезают строки.


14-1106912109
Layner
2005-01-28 14:35
2005.02.20
вложении файла в письмо (INDY)


3-1106213481
SERGGG
2005-01-20 12:31
2005.02.20
SQL BUILDER





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский