Архив

Архив раздела ‘Программирование’

Python: генератор списка паролей для перебора (brute-force).

13 октября 2009 11 комментариев

При написании в очередной раз программы для подбора паролей к чему-либо (исключительно в образовательных целях и для учёбы) опять возникла необходимость в итераторе по заданному алфавиту. Т.е. необходимо написать класс, который мог бы генерировать пароли для последующей передачи их в программу, которая «примеряла» их к чему-надо. К чему – дело третье и сейчас нас (вернее вас) не волнует. В результате получился скромный класс, который приведён ниже со столь же скромными моими комментариями к нему. Читать далее...

Python: файловый интерпретатор.

Очередной бестолковый велосипед от СГУ. Требуется написать "интерпретатор", который умел бы работать с файлами. Так же умел бы исполнять сторонние скрипты. Работа с файлами заключается в следующих функциях - открыть на запись, открыть на чтение, закрыть файл, читать из файла, читать n байт, записать в файл, читать в буфер, записать из буфера в файл, сместиться на определённую позицию.
Читать далее...

Python: Генерация группы ключей.

Опять делюсь универскими наработками. Задача в общем то примитивная (или по крайней мере её реализация). Надо сгенерировать N равнозначных ключей для шифрования/дешифрования сообщения. Т.е., генерируем 10 ключей, шифруем сообщение любым из этих 10, расшифровываем так же любым из этих 10. Например, зашифровали пятым ключом, расшифровали третьим, или десятым.
Читать далее...

PHP: Пример использования ORM Doctrine.

В данном посте рассмотрим простенький пример использования ORM, а именно, Doctrine. Если кто не в курсе, то ORM (Object-Relational Mapping, объектно-реляционная проекция) - такая штука, которая обеспечивают классам прозрачный доступ к базе данных. Правда не всяким классам, а тем, которые представляют описание нашей модели данных. В общем мне бы пару лет назад узнать о такой штуке, может быть я и не забросил изучение php, и вообще, много чего полезного сделал :D. Если кто-то знаком с паттернами проектирования, то можно сказать, что Doctrine соответствует шаблону Active Record. К своему стыду, сам я не знаком с ними, поэтому ничего конкретней сказать не могу пока что.

Кстати, мы уже затрагивали мельком тему ORM, но только для python. Можете посмотреть про SQLAlchemy тут.

Далее будет рассмотрен пример написания модуля на php с использованием ORM Doctrine для отправки личных сообщений между пользователей. Читать далее...

С чего начать программировать на Delphi.

Какую книгу по программированию выбрать начинающему? Где искать ответы на возникающие вопросы? Ведь при изучении программирование всегда будут возникать трудности. Эти вопросы задает каждый кто начинает изучать любой язык программирования. Я постараюсь ответить на эти вопросы в этой статье. Читать далее...

Пишем собственную утилиту для администрирования. Часть 1.

Как я не однократно упоминал, любой программист должен знать, или хотя бы представлять себе как работает та или иная программа и уж тем более системная утилита. Это в первую очередь помогает понимать сам процесс взаимодействия операционной системы и программы. И следовательно создавать для себя, в качестве удобства администрирования свои собственные утилиты. Ну не пользоваться же в конце концов встроенными? Оо
Читать далее...

Python: Аналог интерактивного режима у себя в программе.

Как-то лень было писать для задачки интерфейс, а в универе требовали, и тут в мою голову пришла мысль, что не плохо было бы иметь что-то вроде аналога интерактивного режима интерпретатора python'а (лицезреть который Вы можете выполнив команду python или нажав в виндовской IDLE F5).
Читать далее...

Python: Аутентификация с помощью протокола S/KEY.

25 февраля 2009 Нет комментариев

Смотрю, тут многие интересуются безопасностью, поэтому решил выложить с описанием свою реализацию протокола S/KEY. В общем то задача тривиальная, на мой взгляд, но может кому-то понадобится, если зададут в универе.

S/KEY был разработан для аутентификации на на unix-подобных ОС, в частности, на "глупых" терминалах или на публичных компьютерах с низким уровнем доверия, где использовать долгосрочные пароли нецелесообразно.
Читать далее...

WinAPI: Смена серийного номера тома.

21 февраля 2009 4 комментария

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

WinAPI: Работа с файлами (основные функции).

10 февраля 2009 12 комментариев

Категорически всех приветствую! На этот раз в наше поле зрения попала группа API-функций для работы с файлами. Ибо как мне кажется что по мимо меня многие программисты сталкиваются с необходимостью их использования в своих программах. Но откровенно скажу в голове все эти функции в мести с их возможными параметрами и не упомнишь, и иметь возможность "вспомнить все" ;) прочитав эту статью очень не плохая затея. За семь и приступаю к рассмотрению оного =). Читать далее...

Python: Масштабирование и наложение водяных знаков на изображение.

7 февраля 2009 Нет комментариев

В данной статье будут рассмотрены некоторые возможности PIL (Python Imaging Library), а именно, использование библиотеки для создания превьюшек и наложения одного изображения на другое. Всё это делается достаточно тривиально, если знать как, ну а те, кто не знает, могут читать дальше.
Читать далее...

Безопасность: Инспектор файлов на Delphi.

В этой статье мы немного углубимся в дебри компьютерной безопасности. И на повестке дня повис вопрос, как вы уже догадались - "Инспектор файлов". Что это и для чего он нужен я расскажу по мере чтения вами этой статьи, но замечу сразу, что испокон веков компьютерной эры, с тех самых времен когда операционная система содрогнулась от вирусной эпидемии, на стражу ваших и системных файлов встал гроза контроля и целостности - "Инспектор". Прошу прощение за эпическое отступление ;). Читать далее...