Приветствую Вас, Guru! Проблема решается с помощью RegisterBGIDriver. В стандартной справке есть пример. Именно эта функция выполняет "пристегивание" Ответ отправлен: 18.03.2004, 11:11 Отправитель: Boriss Отвечает Ayl
Приветствую Вас, Guru! 1. Используешь утилиту binobj для преобразования файла egavga.bgi в egavga.obj 2. В своей проге пишешь следующие строки:
Приложение: Ответ отправлен: 18.03.2004, 15:36 Отправитель: Tancho Отвечает Strory
Приветствую Вас, Guru! Сначала сконвертируй файл egavga.bgi в egavga.obj с помощью binobj.exe (находится в каталоге bin). Затем в своей проге вставь строчку {$L EGAVGA.OBJ}. Вот и всё, если не ошибаюсь. Компилятор скомпонует программу вместе с графическим драйвером. Ответ отправлен: 18.03.2004, 15:59 Отправитель: Strory Отвечает Pawel
Приветствую вас,Guru! Сначала надо преобразовать драйвер в файл *.OBJ. Для этого надо вызвать программу BINOBJ из папки BIN с тремя параметрами - именем bgi файла, именем obj файла и именем глобальной процедуры. Например: binobj egavga.bgi egavga vgadrv После этого вы получите файл egavga.obj. Теперь сама программа: Program Internaldrv; Uses Graph; Procedure vgadrv; external; {$L egavga.obj} var d, m, e: integer; begin if registerBGIDriver(@vgadrv)<0 then begin Writeln('Не удалось зарегистрировать драйвер!'); halt; end; d:=VGA; m:=VGAHi; InitGraph(d, r, '');
-------------------------- -=Experts helper: testmode=- Ответ отправлен: 20.03.2004, 07:54 Отправитель: samum2000
Вопрос № 435
Уважаемые эксперты посоветуйте 2-3 несложных алгоритма шифрования/дешифрования. Применятся они будут для шифрования пользовательского ввода с последующими сохранением в файл.
Добрый день, pav! Можно использовать функцию с XOR. Она хоть и проста, но понятна в использовании: for i := 1 to length(text) do begin // XOR алгоритм toto := chr((ord(text[i]) xor (ord(key))); result := result + toto; end; key - ключ шифрования text - исходная строка toto - зашифрованый символ result - зашифрованая строка ---------- Расшифровывается точно так-же :)). Ответ отправлен: 19.03.2004, 14:49 Отправитель: sir henry Отвечает Ayl
Добрый день, pav!
DEC! Шутка! :-)
Ну, например, шифрование с помощью xor. Выбираешь число от 0 до 255 и шифруешь строку: Byte (s [i]) = Byte (s [i]) xor code
Либо запрашиваешь пароль и шифруешь строку этим паролем по тому же алгоритму, только в качестве code берешь очередной символ из строки пароля.
Преимущество - очень просто, один алгоритм для шифрования/расшифрования.
Можешь попробовать алгоритм подстановки: Byte (s [i]) = (Byte (s [i]) + code) mod 256
Для расшифровки подойдет такой код: Byte (s [i]) = (Byte (s [i]) - code + 256) mod 256
Также можешь использовать любой алгоритм сжатия информации без потерь - эти алгоритмы обратимы и сжатый текст не является читабельным.
Вроде вот так... Ответ отправлен: 18.03.2004, 15:01 Отправитель: Ayl Отвечает VOVAN
Приветствую Вас, pav! Самый простой - оператором xor. Вот так (пишу не проверяя, так что не очень ругайте за возможные опечатки и недодумки). {--} Procedure Crypt(Password: Byte); var ch: Char; begin Assign(input, 'input.txt'); ReSet(input); Assign(output, 'output.txt'); ReWrite(output); while not EOF do begin while not EOLN do begin Read(ch); ch := chr(ord(ch) xor Password); Write(ch); end; ReadLn; WriteLn; end; Close(output); Close(input); end; {--} Повторное выполнение данной процедуры с _тем_же_ паролем расшифрует файл. Для "домашнего" пользования такого алгоритма вполне достаточно. Можете усложнить используя для пароля тип Word, но тогда шифруйте по два символа. Бестов и регардов! Ответ отправлен: 18.03.2004, 15:59 Отправитель: Strory Отвечает Pawel
Приветствую Вас, pav! var s:string[10]; s1:string[10]; - key s1:='1234567890'; for i:=1 to 10 s[i]:=Chr(org(s[i] xor org(s1[i])); Ответ отправлен: 18.03.2004, 16:11 Отправитель: Pawel Отвечает Boriss
Доброе время суток, pav! Два - три несложных не бывает. Несложный только один - XOR. О нем в приложении пример. Посложнее - можно спрятать в рисунке, например. Другие способы посмотрите: http://www.proglib.ru/articles/art0000056.asp http://rsdn.ru/article/crypto/pgpsdk1.xml Мало покажется, еще пришлю ссылок :))
Приложение: Ответ отправлен: 18.03.2004, 16:37 Отправитель: Boriss Отвечает D.M.
Приветствую Вас, pav!
Ответ отправлен: 18.03.2004, 17:45 Отправитель: D.M. Отвечает samum2000
Приветствую вас,pav! Самый простой алгоритм - это алгоритм xor. var key, text, longkey, result: string; i: integer; toto, c: char; begin for i := 0 to (length(text) div length(key)) do longkey := longkey + key; for i := 1 to length(text) do begin toto := chr((ord(text[i]) xor ord(longkey[i]))); // XOR алгоритм result := result + toto; end; end; -------------------------- -=Experts helper: testmode=- Ответ отправлен: 20.03.2004, 07:54 Отправитель: samum2000
Вопрос № 436
На счет вопроса № 435 о алгоритмах шифрования. Если можно , уважаемые эксперты, приводите примеры рабочих программ/процедур/функций.
Добрый день, pav! Привел Вам вполне рабочий код. Единственно что не хватает, это доделка под Вашу конкретную задачу, т.е. дополнительно создание файла, открытие, закрытие и т.п. Ответ отправлен: 19.03.2004, 14:51 Отправитель: sir henry Отвечает VOVAN
Приветствую Вас, pav! подстановка цезаря. выходит при нажатии ескейпа. а=б б=в ... если подставить вместо inc(c), inc(c,2). получится а=в б=г... Меняя цифру получаешь разное содержание
Приложение: Ответ отправлен: 18.03.2004, 18:23 Отправитель: VOVAN Отвечает Strory
Добрый день, pav! Если предыдущая процедура не работает, то я очень извиняюсь. А в приложение воткнута работающая программа для шифрования. Описание (поскипанное): -------------------------------- Автор - Потапкин Роман Сергеевич 1. Запрашиваем пароль любой длины. 2. Из символов пароля создаем пять последовательностей по следующим формулам (хотя возможно другое количество и качество) : a1 = a1 + n; a2 = a2 - n; a3 = a3 xor n; a4 = a4 + a1 + n; a5 = a5 + a2 + n, 3. Опять же из символов пароля создаем одну или несколько последовательностей, с помощью которой кодируем файл методом XOR. Для раскодирования идем следующими шагами : 1. Запрашиваем пароль для проверки. 2. Кодируем введенный пароль по тем же пяти формулам. 3. Лезем в закодированный файл и сравниваем введенный пароль с тем, который
лежит в заголовке файла. Если не совпадает, либо выходим, либо идем на п.1. 4. Из введенного пароля создаем вторую последовательность, с помощью которой и приводим файл в первоначальное состояние.
Приложение: Ответ отправлен: 18.03.2004, 19:26 Отправитель: Strory
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.