Перцептивный хэш в ppmformats

В этой статье мы рассмотрим, как можно реализовать алгоритм перцептивного хэширования на языке программирования D, используя библиотеку ppmformats для работы с PPM изображениями. Также мы покажем каждый шаг алгоритма и объясним, как он работает и как можно использовать этот вид хэширования на практике.

Читать далее

Простой пример использования inline assembler в D

Сегодня мы попробуем применить один из интересных инструментов, встроенных в D, а именно про встроенный (или как еще его называют inline) ассемблер. Поскольку D – системный язык программирования, то его создали встроили в него ассемблер для осуществления прямого взаимодействия с системой и оборудованием. Более того, ассемблер является частью спецификации самого D, что не может не радовать.

Читать далее

Пишем утилиту xd. Часть II

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

Читать далее

Взаимодействие между процессами: именованные каналы

Взаимодействие между процессами – ключевая часть многих современных приложений. Один из способов реализовать это взаимодействие – использование именованных каналов. В Windows именованные каналы представляют собой специализированный механизм IPC (Inter-Process Communication), который могут быть использованы для асинхронного или синхронного обмена данными между сервером и клиентами. В POSIX-совместимых системах аналогичная функциональность достигается через такие механизмы, как FIFO (first-in, first-out) файлы, которые предоставляют однонаправленный канал для передачи данных.

Читать далее

Использование утилиты redo со скриптами на D

Мы уже рассказывали про простую утилиту для сборки ваших проектов под названием redo. Также мы делали несколько версий данной утилиты – одна из которых написана на чистом D, а вторая – на BetterC. В этой статье покажем, как можно применять утилиту redo и писать для нее скрипты на D.

Данная статья предназначена для пользователей Linux, работа в Windows и WSL не гарантируется!

Читать далее

Пишем утилиту xd на D. Часть I.

В Plan 9, а также ее идейной наследнице Inferno OS, есть одна полезная утилита, которая называется xd. Наша команда подумала, что написание этой утилиты является довольно полезным и интересным упражнением. Давайте сделаем это на D!

Читать далее

Поточный алгоритм шифрования ChaCha

В этой статье мы рассмотрим один из простых алгоритмов шифрования, алгоритм под названием ChaCha, о предшественнике которого, под названием Salsa20, мы уже упоминали. Алгоритм ChaCha очень известен и широко применяется, а также имеет за собой стандартизированное в RFC описание, которое в упрощенном виде будет показано далее.

Читать далее

По следам примера использования генетических алгоритмов от eax.me

В этой статье мы расскажем про один из интересных на наш взгляд экспериментов, которые мы давно планировали, но не могли реализовать, поскольку оригинальный код написан был на Perl, а разбираться с алгоритмом не было времени.

Автор оригинального кода довольно известен и для его блога eax.me, мы как-то делали гостевую статью про FPGA, и именно его идею мы и хотели воспроизвести в D.

Эксперимент, а именно так можно это назвать, который будет описываться здесь связан с генетическими алгоритмами…

Читать далее

Бит-реверсивная перестановка в D

В этой статье мы расскажем вам про одну известную перестановку элементов массива, которая сама по себе редко упоминается и известна в контексте одного из самых популярных алгоритмов – алгоритма быстрого преобразования Фурье.

Читать далее

Демонстрационный криптографический генератор псевдослучайных чисел

Внимание! Все представленные в данной статье материалы являются демонстрационными и не должны применяться в серьезных приложениях, поскольку предлагаемое не прошло независимый аудит и не было надлежащим образом проверено, и предлагается лишь как доказательство концепции или как сравнительно простой способ генерации случайных чисел для некриптографических приложений. Если вам нужен надежный криптографический генератор случайных чисел, то воспользуйтесь уже существующими решениями и ни в коем случае не реализуйте данные решения самостоятельно!

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

Читать далее