Как стать автором
Обновить
0
0
Антон @Coriolis

Программист

Отправить сообщение

Реализация грида для работы с большими таблицами. Часть 2

Время на прочтение10 мин
Количество просмотров6.9K
В предыдущей части статьи был разобран общий принцип работы системы: мы увидели, что двумя основными её блоками являются интерполятор и нумератор. Мы построили схему взаимодействия, а также полностью обсудили реализацию интерполятора. В этой части мы разберём реализацию нумератора: обратимой функции, переводящей набор значений ключевых полей в натуральное число (BigInteger) таким образом, что набор меньше набора с точки зрения СУБД тогда и только тогда, когда . Говоря проще — научимся интерполировать наборы значений и, что самое интересное, строки:


Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии6

Наш опыт использования фотограмметрии при разработке компьютерной игры (Часть 1)

Время на прочтение6 мин
Количество просмотров30K
image

В данной статье будет рассказано о фотограмметрии и опыте её использовании при создании контента для трёхмерной компьютерной игры во вселенной Half-Life, разработкой которой мы занимаемся уже не первый год.
Читать дальше →
Всего голосов 56: ↑52 и ↓4+48
Комментарии15

Что несут свежие изменения в 63-ФЗ «об электронной подписи»

Время на прочтение4 мин
Количество просмотров37K
23 декабря 2015 года Государственной думой в 3м чтении был принят проект ФЗ-445 об изменении в 63-ФЗ «об электронной подписи». Так как многие коллеги еще не знакомы с этим законом, хотелось бы донести и рассказать чего коснутся изменения и как он повлияет на развитие единого пространства доверия в Российской Федерации. Но обо всем по порядку.

До настоящего момента, каждый удостоверяющий центр (далее УЦ), после прохождения аккредитации САМ выпускал себе ключевую пару (открытый и закрытый ключи УЦ) и сертификат проверки ключа электронной подписи (далее сертификат). Основной особенностью сертификата было то, что он был выпущен самим УЦ и подписан его подписью (такой вариант сертификата называется «самоподписанный»). Далее этот сертификат предоставлялся оператору Головного удостоверяющего центра Российской федерации (далее ГУЦ), где, данный самоподписанный сертификат включался в доверенные и ГУЦ публиковался на портале ГУЦ как доверенный.

В итоге такой схемы взаимодействия УЦ с ГУЦ мы получали изоляцию пространств доверия каждого отдельного УЦ, так как все операционные системы и прикладное ПО проводят проверку сертификата ключа по цепочке сертификации, до тех пор, пока издатель сертификата не совпадет с владельцем сертификата. Таким образом получалась картина, что для того чтобы два пользователя с сертификатами двух разных УЦ доверяли друг другу, им было необходимо добавить сертификаты УЦ друг друга в доверенные. Тут специалисты мне вежливо укажут на кросс-сертификаты между УЦ, но я уверенно отвечу – это костыли, и объясню почему: Представьте, что вы в сети интернет и вы ходите от одного узла сети к другому, каждый из которых использует сертификат своего УЦ. Тогда, для обеспечения доверия всем узлам (они и правда доверенные) вам придётся иметь у себя локально сертификаты всех УЦ в Российской Федерации. Более того, вам придётся их самостоятельно поддерживать в актуальном состоянии. Оно вам надо?
Читать дальше →
Всего голосов 40: ↑36 и ↓4+32
Комментарии51

Читаем контейнер закрытого ключа КриптоПро средствами OpenSSL

Время на прочтение8 мин
Количество просмотров86K
Речь пойдет о файлах primary.key, masks.key и header.key, которые лежат в директории ххххх.000 на флешке. Данные файлы входят в состав криптоконтейнера закрытого ключа электронной подписи криптопровайдера КриптоПро, формат которого нигде не опубликован. Целью данной статьи является чтение контейнера и преобразование закрытого ключа в формат, который может быть прочитан в библиотеке OpenSSL. Долгое время было распространено ошибочное суждение, что достаточно сделать нечто вида (primary_key XOR masks_key) и мы получим закрытый ключ в чистом (raw) виде, однако забегая вперед, можно утверждать, что в КриптоПро было применено более сложное преобразование, в худшем случае состоящее из более чем 2000 (двух тысяч) операций хеширования.

Стоит упомянуть о существовании утилиты P12FromGostCSP которая позволяет конвертировать ключ в формат P12, доступный для работы с OpenSSL, но утилита имеет следующие существенные недостатки:
  • Читает контейнер не напрямую, а через криптопровайдер, поэтому там, где кроме OpenSSL ничего нет, не работает.
  • Если в свойствах ключа не отмечено, что ключ «экспортируемый», то конвертировать его невозможно.
  • В демо версии не формирует файл с ключом, эта возможность присутствует только в платной версии.

Файл primary.key


Содержит 32 байта ключа в формате Asn1. Это только половина ключа, полный ключ получается при делении этого числа по модулю Q на маску. Поле, хранящее модуль Q в библиотеке OpenSSL имеет название order. Маска лежит в файле masks.key:

primary.key
Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии44

Open-source реализации отечественных криптоГОСТов

Время на прочтение2 мин
Количество просмотров61K
На выходных решил поискать open-source реализации отечественных криптографических стандартов. Прежде всего интересовали новые: хэш-функция Стрибог (ГОСТ Р 34.11-2012), Кузнечик (ГОСТ Р 34.12-2015) и ЭЦП (ГОСТ Р 34.10-2012 или 2001 (без 512-бит) ). Старый ГОСТ 28147-89 специально не искал, поскольку найти его реализацию никаких проблем нет уже давно.
Итак, давайте посмотрим, что же получилось. Сразу предупреждаю, что корректность реализаций не проверял.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии64

Сравнение сервисов приема интернет-платежей для ИП

Время на прочтение8 мин
Количество просмотров86K
Ранее я опубликовал две статьи (1, 2) о способах приема платежей на сайте. В предыдущих статьях было одно условие — подключение к платежным системам производилось как физическое лицо. Теперь я решил выйти из сумрака делать все максимально честно, и хочу рассказать о способах подключения к платежным системам в качестве ИП и легального вывода заработанного на расчетный счет в банке.

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

В общем случае, чтобы подключить прием платежей, нужно обменяться договором с платежной системой, так что на быстрое подключение рассчитывать не приходиться. Плюс — этот договор должны вручную обработать, так что если не учитывать время, затраченное на пересылку документов Почтой России, то подключение занимает от трех дней. Пакет документов у всех примерно одинаковый, но иногда может потребоваться заверенная у нотариуса копия какого-то документа или, например, свежая выписка из ЕГРИПа.

Итак, герои сегодняшнего обзора: WebMoney, Яндекс.Касса, PayPal, Единая Касса (Wallet One), RBKMoney, PayMaster, РобоКасса, QIWI
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии33

Delphi: Быстрое (де)кодирование JPEG с помощью libjpeg-turbo

Время на прочтение11 мин
Количество просмотров16K
Как-то раз, профилируя библиотеку для удаленного наблюдения за рабочим столом, мной было обнаружено что куча ресурсов и времени занимает кодирование/декодирование JPEG. Изучив по ускорению этой процедуры сторонние решения, было решено использовать libjpeg-turbo.

Под катом много кода на Delphi и описаны подводные камни использования библиотеки

Читать дальше →
Всего голосов 30: ↑18 и ↓12+6
Комментарии9

Ресурсы, о которых должен знать каждый Android-разработчик

Время на прочтение6 мин
Количество просмотров189K
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

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

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
Читать дальше →
Всего голосов 133: ↑128 и ↓5+123
Комментарии33

Новое в СУБД Caché 2013.1: добавление и генерация индексов на «живых» классах

Время на прочтение4 мин
Количество просмотров2.5K
Предположим, что у вас есть таблица с большим количеством записей и в неё нужно добавить один или несколько индексов со следующими условиями:

  1. их генерация должна быть максимально быстрой
  2. чтобы генерацию можно было производить порциями.
    К примеру, если есть таблица на 300М записей и работы с ней можно производить только в нерабочее время, то чтобы можно было разбить весь процесс на три ночи по 100М записей
  3. появление новых индексов и сам процесс их генерации не должны мешать текущей работе с классом/таблицей

Для этого можно было бы воспользоваться уже известным методом %BuildIndices(), но в таком случае это не будет удовлетворять нашим условиям.

Каков же выход?
Читать дальше →
Всего голосов 3: ↑2 и ↓1+1
Комментарии9
2

Информация

В рейтинге
6 105-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность