|
Подпишитесь на новости сайта по RSS
|
|
Главная страница
Здравствуйте!
Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...
Новости
|
|
|
То, о чем так долго говорили большевики, свершилось!
Выпущена новая версия кроссплатформенного менеджера накопления информации MyTetra v. 1.30. В релизе настолько много изменений, что я решил "перепрыгнуть" в нумерации версий с 1.28 сразу на 1.30, чтоб номер получился круглым.
В новом релизе MyTetra появилось три важных функции: синхронизация через интернет, шифрование и навигация по истории.
Синхронизация
Для синхронизации можно использовать любые системы облачного хранения данных или системы контроля версий. Главное, чтобы эти системы поддерживали атомарность. Автор протестировал и использует Git на GitHub.com.
Шифрование
Данные шифруются по алгоритму RC5-32/12/16 c CBC-режимом сцепления, ключ генерируется на основе пароля с солью, пропущенного через алгоритм PBKDF2 на 1000 раундов с длиной ключа 160 бит. Для генерации ключа шифрации в 128 бит, от результата берется MD5 сумма. Каждая запись шифруется с уникальным инициализирующим вектором. Как побочный результат реализации шифрования, была создана кроссплатформенная библиотека RC5Simple.
В MyTetra можно использовать шифрование в двух режимах:
- Первый, наиболее секьюрный - это запрос пароля при каждом старте MyTetra или при попытке доступа к зашифрованным данным. Он подходит для людей, которым необходимо локальное и безопасное храннение данных.
- Второй, менее секьюрный режим, - это возможность запоминания пароля (точнее, хеша пароля) программой MyTetra. Данный режим походит для пользователей, которые хотят синхронизировать свои данные через открытые всем бесплатные сервера в интернете, но не хотят каждый раз вводить пароль.
Навигация по истории
В MyTetra появились две замечательные кнопочки, которые позволяют быстро перемещаться назад и вперед по истории просматриваемых записей. Так же теперь MyTetra помнит, какую запись вы редактировали в каждой ветке и автоматически выбирает данную запись при переходе в уже посещённую ветку.
Так же в MyTetra v.1.30 много других доработок и изменений.
Ссылки
Традиционный обзор новой версии: MyTetra v.1.30 - подробный обзор.
Настройка синхронизации: Документация по настройке синхронизации MyTetra через интернет.
Скачать установочные пакеты и исходники: Официальная страница программы MyTetra.
Обсудить, отправить багрепорт или задать вопрос: Ветка форума по MyTetra v.1.30.
PS: В данный момент готовы версии для Linux и Windows. Пользователям Mac Os X и MeeGo нужно набраться терпения и немного подождать.
PPS: На официальной странице добавлена сборка MyTetra v.1.30 для FreeBSD 8.2, спасибо товарищу Алексею Шизу.
PPS2: Добавлена сборка MyTetra v.1.30 для Mac Os X, спасибо товарищу Андрею Сергиенко.
|
|
|
|
Уважаемые пользователи менеджера накопления информации MyTetra!
Новая версия 1.30, которая была обещана к концу июня, задерживается по причине обнаружения бага в Qt-библиотеке. Этот баг не позволяет сделать правильную реакцию программы на перемещение курсора в списке записей. Он был и раньше, но явно не проявлялся (просто могло подтормаживать открытие первой записи при клике в списке записей, так как на самом деле обрабатывалось две записи).
Сейчас, в связи с дописывание функционала, баг вылез во всей своей красе.
Обсуждение 1: http://www.prog.org.ru/topic_18706_0.html
Обсуждение 2: http://www.linux.org.ru/forum/development/6457931
Багтрекер Qt: http://bugreports.qt.nokia.com/browse/QTBUG-8086
Багу подвержен Qt версии 4.6, и он исправлен в Qt 4.7. Для пользователей Windows и MacOs я могу собрать установочный пакет с нужными библиотеками. Но с пользователями Linux прямо не знаю что делать. Не могу же я заставить их обновиться на Qt 4.7. Я и сам пользуюсь Debian Stable, в котором имеем Qt 4.6. Делать статическую сборку под Linux бессмысленно - на половине дистрибутивов она всеравно будет сегфолтиться: то libc не той версии, то ядро не той системы.
Поэтому сейчас я пробую обойти баг, переделав механизм обработки кликов мышкой и движения клавишами по списку записей. Если это получится, буду публиковать в ближайшее время. Если не получится, буду искать компромиссные решения.
Следите за новостями.
|
|
|
|
Разработка MyTetra продолжается согласно опубликованному ранее плану.
На текущий момент в MyTetra, помимо шифрования, заработала синхронизация через интернет. Для синхронизации можно использовать любые системы облачного хранения данных или системы контроля версий. Главное, чтобы эти системы поддерживали атомарность.
Для себя я использую Git на GitHub.com, бесплатный тариф. Данные на этом тарифе доступны для чтения всем желающим, поэтому все приватные данные зашифрованы.
Синхронизация происходит обычно около трех-пяти секунд. Для изменившихся файлов передаются только изменения, благодаря чему траффик минимальный.
Запуск cинхронизации возможен двумя путями. Можно запускать синхронизацию вручную, с помощью специальной кнопочки:
Дополнительно можно настроить автоматическую синхронизацию при старте программы и при выходе:
Сейчас проводятся последние тесты MyTetra, дорабатываются незначительные мелочи. К концу июня я планирую выпустить релиз.
PS: Тут меня в аське спрашивают, не боюсь ли я хранить свои личные данные в зашифрованном виде на открытом хостинге. Вдруг взломают? Отвечаю: я считаю используемую подсистему шифрования RC5Simple достаточно надежной для хранения своих приватных данных, при условии использования хорошего пароля. Если у кого есть желание заняться взломом, пожалуйста - исходники открыты, мои данные лежат на GitHub (ищите по ключевому слову mytetra). Приз ~3000 руб. + ~100$ в моем WebMoney-кошельке, которые можно утащить узнав WM-данные, хранящиеся в одной из записей.
Всем удачи, следите за новостями.
|
|
|
|
На сайте WebHamster.ru опубликована новая статья о том, как я боролся с ошибкой в Qt, а она оказалась совсем в другом месте.
Если у вас в консоли сыпятся предупреждения следующего вида:
[WRN] QFont::setPointSize: Point size <= 0 (0), must be greater than 0
и вы не знаете, откуда они появились, то советую ознакомиться со статьёй:
Qt: как бороться с ошибкой "Point size <= 0 (0), must be greater than 0".
|
|
|
|
После нескольких публичных минорных релизов вышла первая стабильная версия криптографической библиотеки RC5Simple v.1.20.
Основные изменения в новой версии:
- Изменена реализация механизма сцепления блоков шифротекста с упрощенного, предложенного в Reference implementation of RC5-32/12/16 in C RSA Data Security Inc, 1995 на полный CBC, (см. описание в Wikipedia);
- Скорость шифрации/дешифрации данных увеличена в 2,5 раз;
- В исходники добавлен каталог /doc. В нем размещено описание формата данных и HOWTO по использованию библиотеки.
Библиотека RC5Simple в данный момент используется для разработки опции шифрования приватных записей в менеджере накопления информации MyTetra.
|
|
|
|
В ходе работы над блоком шифрования в менеджере накопления информации MyTetra, была обновлена криптографическая pure C++ библиотека RC5Simple. Изменения небольшие, и коснулись только внутреннего устройства библиотеки:
- Исправлены предупреждения о сравнении знакового и беззнакового числа в методах RC5_Setup() и RC5_EncDecFile() возникающие при строгих опциях компилятора;
- В прототип конструктора добавлен аргумент enableRandomInit, который по-умолчанию равен false. Это необходимо для того, чтобы пользователь мог управлять инициализацией генератора случайных чисел. Если в основной программе сделана инициализация, то инициализация в данном классе не требуется, и по-умолчанию теперь отключена.
Скачать RC5Simple v.1.16 можно на официальной странице проекта.
|
|
|
|
Развитие менеджера накопления информации MyTetra продолжается согласно недавно опубликованному плану развития.
На сегодняшний день в MyTetra заработало шифрование приватных записей.
Подробности низкоуровневой реализации следующие: все данные шифруются по алгоритму RC5-32/12/16 c CBC-режимом сцепления, ключ в 128 бит генерируется на основе пароля с солью, пропущенного через алгоритм PBKDF2 на 1000 раундов с длиной ключа 160 бит, после чего от результата берется MD5 сумма. Каждая запись шифруется с уникальным инициализирующим вектором.
Такая степень шифрации нужна для того, чтобы можно было безопасно хранить свои данные на любых открытых серверах.
Скриншоты для любознательных:
1. Запускаем MyTetra, видим зашифрованные ветки:
Увеличить
2. Кликаем по любой зашифрованной ветке, вводим пароль доступа:
Увеличить
3. Зашифрованные ветки открываются:
Увеличить
Внимание! В связи с тем, что не нашлось ни одного добровольца, который бы протестировал криптографическую библиотеку RC5Simple на 64-х битных системах, правильная работа подсистемы шифрования MyTetra в 64-х битных системах не гарантируется.
Скорее всего, следующий публичный релиз MyTetra будет под номером 1.30 (нумерация перепрыгнет через версию 1.29). В ней появится как шифрование, так и возможность настройки Internet-синхронизации через любые системы управления версиями, поддерживающими атомарность (я выбираю GIT на GitHub.com).
Следите за новостями.
|
|
|
|
На сайте WebHamster.ru опубликована новая статья под названием "Пример функции обратного вызова на C++ / Qt".
В этой статье на небольшом примере показано, как писать и использовать функции обратного вызова (callback-функции) в языке C++. Вам нужно будет управлять поведением самолетика, указывая алгоритм поведения как функцию обратного вызова. Заменяя функции обратного вызова, можно нагенерировать объекты одного класса (самолетики) с разными закономерностями поведения.
В рунете я не смог найти хорошего объяснения написания callback-функций с полным примером кода, поэтому, разобравшись с вопросом, написал свое руководство к действию.
|
|
|
|
На сайте WebHamster.ru опубликована первая публичная версия криптографической С++ библиотеки RC5Simple v.1.15. Данная библиотека предназначена для шифрации и дешифрации небольших объемов данных (до 4Gb). В качестве алгоритма шифрования используется метод RC5-32/12/16 c модифицированным CBC-режимом сцепления блоков шифротекста (согласно Reference implementation of RC5-32/12/16 RSA Data Security).
Библиотека RC5Simple распространяется в виде исходных кодов под лицензиями GPL v.3 и BSD.
В библиотеке сделаны удобные методы шифрования/расшифровки массивов байт и файлов. В архиве так же находится тестовая программа с примерами использования.
Скачать архив с исходниками можно на официальной странице библиотеки RC5Simple.
Тестирование
Библиотека RC5Simple в настоящий момент тестировалась только на 32-х битных системах. Владельцев 64-х битных Linux-систем я прошу протестировать эту библиотеку. Для этого нужно сделать две вещи.
1. Скомпилировать библиотеку и демопример путем запуска файла compile.sh. Затем запустить скомпилированный бинарник на выполнение. Результат вывода в консоль прислать на почту xintrea@gmail.com.
2. Открыть файл RC5Simple.h, найти определение RC5_ENABLE_DEBUG_PRINT и установить его в 1:
#define RC5_ENABLE_DEBUG_PRINT 1
Затем скомпилировать демопример, запустить бинарник на выполнение. Результат вывода в консоль тоже прислать на почту.
Где используется RC5Simple?
Согласно плану развития менеджера накопления информации MyTetra, библиотека RC5Simple сейчас используется для разработки подсистемы шифрования приватных данных.
|
|
|