Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.12.2007, 12:14
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Вопрос О шифровании

Как мне правильно работать с:
BlockRead
BlockWrite
Читал об этих командах и не очень-то понял. Объясните плизз по подробнее. И ещё, если можно, объясните как сделать на основе этого простейшее шифрование. И ещё как сделать такое: например хочешь зашифровать картинку, добавил один байт и она уже не показывается, типа зашифрованная, а когда захотел, взял и убрал тот самый байт и картинка читается(расшифрована).
Плизз объясните...
Ответить с цитированием
  #2  
Старый 28.12.2007, 15:08
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
Сообщение

Работа с нетипизированными файлами:
Так как при работе с нетипизированными файлами данные считываются и записываются побайтно, допускается обрабатывать такие файлы, как последовательность байтов, не имеющих строгой внутренней структуры. Для этого применяют процедуры блочного ввода/вывода BlockRead и BlockWrite. Они имеют одинаковый список параметров и отличаются только названиями.
procedure BlockWrite(var f:File; var Buf; Count:Integer; var AmtTransferred: Integer);
Параметр Buf - это произвольная переменная (напр: B: array [1..1000] of Byte), параметр Сount - число блоков считываемой или записываемой информации. Если при открытии файла размер блока не был указан явно (напр: Reset(F,1); или Rewrite(F,1) , где - F:File), считается, что он равен 128 байтам. Однако нетипизированные файлы применяют, как правило, для побайтной обработки данных, поэтому длину блока задают равной 1 байту, и в параметр Count записывают просто число байтов, которые необходимо считать или записать. Параметр AmtTransferred - необязательный. По окончании выполнения процедуры в нём будет храниться число реально считанных или записанных блоков.
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #3  
Старый 28.12.2007, 16:01
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
Радость

Зашифровать картинку:
Написал только для bmp (для остальных форматов сейчас писать лень),
Смысл в том, что все байты заголовка bmp-файлы (в котором записана информация о файле) инвертируются (т.е этот байт вычетается из 255).
Поэтому никакие программы эго прочитать не смогут (пробовал в Paint, Photoshop и ACDSee).
Вложения
Тип файла: zip Encoding Bmp.zip (4.4 Кбайт, 10 просмотров)
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #4  
Старый 28.12.2007, 16:49
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Вопрос Шифрование

А нельзя никак проще, например всего один байт в конец и всё.
А то это как-то сложновато.
Ответить с цитированием
  #5  
Старый 28.12.2007, 18:59
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
Восклицание

Нельзя. Один байт ничего не изменит, а вот 56 байт - изменят
(заголовок как раз и весит 56 байт,по крайней мере в bmp, и проинвертировать их не так уж и сложно).
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter