пятница, 20 ноября 2009 г.

Шифрование информации в HiAsm

Компонентов для шифрования в HiAsm нет, поэтому вам нужно скачать их. В архиве находится целых 16 компонентов - для 16 алгоритмов шифрования, а потому для них желательно создать новую вкладку.

Установить компоненты в HiAsm очень просто, нужно лишь сбросить ini-файлы в окно открытого HiAsm'а, а затем выбрать там вкладку или ввести имя новой.

Теперь нужно приглядеться к новым компонентам. Возьмём, например, алгоритмы Idea и Cast256. Подробно о них можно прочитать в Интернете, но основные параметры отражены прямо в короткой справке.

У алгоритма Idea блина блока 64 бита, а длина ключа - 128 бит. Это значит, что при шифровании файлового потока он будет разбит на блоки по 64 бита (8 байт), и к этим блокам будет применено шифрование. Для шифрования используется 128-битный ключ, который программа составляет из пароля, введённого вами. При расшифровке к зашифрованным блокам применятеся обратный алгоритм. При этом размер зашифрованных данных равен размеру исходных.
А у Cast256 длина ключа равна 256 бит. Чем больше длина ключа, тем надёжнее считается алгоритм.

Какой из них использовать - вам решать. Можно все вперемешку. Но сначала посмотрим на простой пример.



Здесь при нажатии Enter текст из потока сначала запоминается, а затем происходит переключение переключателя (в его параметрах указано 0 и 1). А IndexToChanel направляет при одном событии текст на шифрование, при втором - расшифровку. Так что можете вводить текст и получить шифр по паролю (он в параметрах компонентов шифрования).

Отдельно стоит сказать про конверторы. Компоненты для шифрования шифруют только поток, и потому текст нужно предварительно привести к потоку. Конвертор находится в "Инструментах", внимательно смотрите на его параметр Mode. При его изменении изменяется и иконка компонента. А когда данные преобразованы (зашифрованы или расшифрованы), поток нужно снова преобразовать в текст и только потом записать в поле ввода. Отметьте, что количество символом никогда не меняется.



А вот так мы шифруем файл. Не забудьте указать пароль.

Схему для расшифровки я не привожу, потому что она практически идентична этой, только используется другое метод компонента шифрования.

Напоследок дам совет: используйте шифрование вместе со сжатием (если это возможно в вашем проекте). Ведь уменьшение размера файла - это практически всегда плюс. Однако сжатие нужно проводить исходных данных, потому что зашифрованные обычно плохо сжимаются.



А расшифровку нужно проводить в обратном порядке.



Однако если вы захотите открыть сжатый файл в архиваторе, то ничего не получится: сжатые данные - это только начинка zip-архивов, а у настоящих zip-архивов в файле, кроме сжатых данных, есть ещё разные служебные данные типа имён сжатых файлов. В следующей статье я расскажу, как в HiAsm работать с zip-архивами.






Для отдыха или постоянного проживания можете купить дома в Испании на побережье моря. Хорошая недвижимость в Испании.

Для любителей эротики и порно - xxx video. Картинки небольшого размера (для тех, у кого низкая скорость). Самые разные xxx video ролики.

Если у вас скоро свадьба, вам нужен свадебный фотограф. Пригласите свадебного фотографа, чтобы свадьба запомнилась надолго.

22 комментария:

  1. Можно ли с компонентом Memory Stream работать как с массивом ? Если нет то как создать одномерный массив с типом BYTE ?

    ОтветитьУдалить
  2. Ну, вот хотя бы так. Для записи следует использовать doPut (при этом будет заменяться байт, номер которого установлен из поля ввода, но не добавляться новый).

    ОтветитьУдалить
  3. "Компонентов для шифрования в HiAsm нет"
    обманывать не хорошо!!!!!!
    есть штатный компонент Cryptography

    ОтветитьУдалить
  4. Анонимный, не забывайте, что это относится к версии 179. В версии 179 этого компонента нет.

    ОтветитьУдалить
  5. _______________,$$$$­$,
    ______________$$$$$­$$$$
    _____________$$$$$$­$$$$$_______________­__________________,,­
    _____________$$$$$$­$$$$$$______________­________________$$$$­$,
    _____________`$$$$$­$$$$$$______________­______________$$$$$$­$$
    ______________`$$$$­$$$$$Z$______$$$____­___$$$_______$$$$$$$­$"
    _______________`$Zz­Z$$$Z$$$___$$$$$$$__­_$$$$$$$____$$$$$$$$­"
    ________________`$$­$ZZZ$$$$$_$$$$$$$$$_­$$$$$$$$$__$$$$$$$$"­
    _________________`$­$$$$$$$$$_$$ZZ$$$$$_­$$ZZZ$$$$_$$$$$$$$
    ____u$$$$$$u______`­$$$$$$$$$$_$$$ZZZ$$_­$$$$$ZZ$$_$$$$$$$"
    __$$$$$$$$$$Z$_____­`$ZZ$$$ZZZ_$$$$$$$$_­$$$$$$$$$_$$$$$$
    _$$$$$$$$$$$Z$$$$__­$$$$zzz$$$_$$$$$$$$_­$$$$$$$$$_$$$$$$"
    _$$$$$$$$$$Z$$$$$$$­$$$$$$$$$$_$$ZZ$$$$_­$ZZZ$$$$$_$$$$$"
    ___"$$$$$$$Z$$$$$$$­$$$$$$$$$$_$$$$$ZZ$_­$_$$$$$$$_$$$$$"
    ________`$Z$$$$$$$$­$$$$$$$$$$_$SB$$$__$­$_$$$$$$_$$$$"
    __________`$$$$$$$$­$$$$$$$$$$$,``"`,$$$­$,_``"`,$$$$$$$"
    ___________"$$$$$$$­$$$$$$$$$$$$$$$_$$$$­$$$$$$$$$$$"
    _____________"$$$$$­$$$$$$$$$$$$$$$$_$$$­$$$$$$$$$$"
    _______________"$$$­$$$$$$$$$$$$$$$$_$$$­$$$$$$$$$"
    __________________"­$$$$$$$$$$$$$$$$_$$$­$$$$$$$"
    ___________________­"$$$$$$$$$$$$$$$$_$$­$$$$$"
    ___________________­__$$$$$$$$$$$$$$$$$$­$$$$

    ОтветитьУдалить
  6. а у меня не получается установить элименты в HiAsm!!

    ОтветитьУдалить
  7. Какие действия предпринимаются для установки? В чём конкретно проблема?

    ОтветитьУдалить
  8. выдает ошибку!! при установки компонента!!

    ОтветитьУдалить
  9. Какая версия HiAsm? Устанавливать надо скидыванием файла ini на открытый HiAsm. По одному файлу.

    ОтветитьУдалить
  10. (v4.04b184) я так и сделал но все-равно он выдает ошибку!!
    Error
    return nil as query result
    select id form groups where hame =''

    ОтветитьУдалить
  11. Странно. Я распаковываю скачанный архив, переношу ini-файл на поле HiAsm этой версии, выбираю вкладку (или ввожу имя новой), нажимаю ОК, и всё добавляется.

    ОтветитьУдалить
  12. у меня так и ничего не получилось можете скинуть hiasm с установленными новыми компонентами буду очень благодарен!!
    заранее спасибо!

    ОтветитьУдалить
  13. Хорошо, вот файл базы данных. Его надо скинуть в папку Elements\Delphi. А из архива с компонентами (ссылка в посте) скиньте pas-файлы - в папку Elements\Delphi\code, ini - в \Elements\Delphi\conf, ico - в \Elements\Delphi\icon. Может быть, получится.

    ОтветитьУдалить
  14. Спасибо очень помогли!!!!!

    ОтветитьУдалить
  15. Скорее всего. Но пока я занят.

    ОтветитьУдалить
  16. У меня есть предложение по поводу урока, тема такая "бот для игры..." ну а игру можете выбрать на ваше усмотрение. Я думаю что из такого урока можно многому научиться!!
    Спасибо зарание!!

    ОтветитьУдалить
  17. Приведите пример игры, для которой есть желание сделать бота. Если честно, я в играх не очень разбираюсь, но всё зависит от сложности игры.

    ОтветитьУдалить
  18. Ну, например я играю в Pfrect World, сделать бота к ней было бы кстати!

    ОтветитьУдалить
  19. Н-да, боюсь, для такого у меня знания маловато будет... Да и игру эту я не знаю...

    ОтветитьУдалить