Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1 2 След.
RSS
FVMas - обработка таблиц/массивов в памяти
 
Масинькая библиотека, позволяет организовывать масивы в памяти, фактиески ей можно заменить драйвер БД, даже с несколько большими позвожностями (более простой организацией данных)...
http://ykolchurin.narod.ru/FVMas.html
Кто юзал? Какие мнения? Кто тестил на 4-х ядерных ЦП - многопоточный функционал, как по скорости???
 
и чем это лучше обычных массивов?
с учётом непортабельности этой библиотеки.
 
Цитата
FVMas
Версия: V1.3.1 выпуск 1
Тип распространения: бесплатная
Размер: 325Кб
ОС: Windows 95-Vista
Цена: 250 руб.
Поддержка: 1500 руб.
Файл: Загрузить

Вот эту табличку я абсолютно не понял :| Что имеет ввиду автор? Или-или. Или "Тип распространения: бесплатная", или "Цена: 250 руб. Поддержка: 1500 руб." в таком же выражении полный бред, логика не вяжется. Да и всё это дело прекрасно реализуется такими языками разработки как Кобол (работа с массивами его основная задача), PL/1 - в этом используется оператор array (m,n) и библиотека просто становится не нужна - компилятор сам подставит нужные библиотеки среды времени выполнения. Да и если поискать, подобных решений наверняка найдётся масса. А уровень сложности их не выходит за рамки курсового проекта для любого первокурсника института. В общем или тут самореклама, или глупый розыгрыш. Иначе я это как ни старался, понять не смог.  :(
Изменено: VictorVG - 08.12.2008 03:22:33
 
Скорее самореклама...
 
linux_helper,

Точно. Оценка коллег из НИИЦВТ - "Зря потраченное время...".
 
Цитата
^rage^ пишет:
и чем это лучше обычных массивов?
с учётом непортабельности этой библиотеки.
С обычными массивами гораздо больше текста придётся писать и программа будет громоздкой.
Эта библиотека, как абстрактный тип данных - вы не имеете прямого доступа к массиву, у него свой менеджер памяти - у вас есть лишь определёный набор функций для работы с массивом - позволяющий вам делать с ним всё что захотите.
Приимущества:
- вы больше не занимаетесь динамическим резервированием памяти, этим занимается библиотека, поэтому ошибки обрщения к недопустимой области памяти сведены на нет - так как программист больше не мжет допустить такой ошибки :).
- в отличае об БД, в массиве можно обработать неструктурироанные данные - не отвечающие требованиям целостности и уникальности записей, массив точно знает в каком пордке идут записи и идентифицирует их по этому порядку а не по логической структуре.
- В отлича от обычных массивов, библиотека предотавляет широий набор функций для работы с массивами.
- Часть функций имеют многопоточную оптимизацию, сортировка с оптимизацией под 4-х ядерные процессоры, может значительно ускорить обработку больших объёмов данных.
- Собственый безопасный формат хранения данных, обеспечит надёжную защиту данных в корпоративной среде и Интернете. Защитит информацию от утечек и потенциальных атак хакеров.

Эта библиотека как замена драйверов БД для отдельных разработок. В неё можно легко загружать иобрабатывать данные из разных источников.

Лучше обычных массивов???
 
Цитата
VictorVG пишет:

                                                               linux_helper,

Точно. Оценка коллег из НИИЦВТ - "Зря потраченное время...".
Коллеги её явно недооценили.
Как насчёт хранения данных, практика показала, что размер базы данных в собственном формате - в 10 раз меньше стандартных баз данных с резервированием места под каждую запись, это при том что накладываемые на поля ограничения в 10-20 символов обычных баз данных в 10 раз меньше ограничений (в 255 символов на любую ячейку). Уже при равных ограничениях - разница в размере в 100 раз!!! 5-ть встроенный методов сжатия, не проходят даром (хотя некоторые лючше не использовать во избежания потери производительности, но это 2-5% от размера)!!!
Надёжные средства шифрования - при надёжном пароле, сделают данные абсолютно нечитаемые ко-му либо, что позволяет ханить их в интернете и работать с базой через открытые каналы связи - не боясь утечки данных.
 
Цитата
VictorVG пишет:

                                                               ЦитатаFVMas
Версия: V1.3.1 выпуск 1
Тип распространения: бесплатная
Размер: 325Кб
ОС: Windows 95-Vista
Цена: 250 руб.
Поддержка: 1500 руб.
Файл: Загрузить

Вот эту табличку я абсолютно не понял  Что имеет ввиду автор? Или-или. Или "Тип распространения: бесплатная", или "Цена: 250 руб. Поддержка: 1500 руб." в таком же выражении полный бред, логика не вяжется. Да и всё это дело прекрасно реализуется такими языками разработки как Кобол (работа с массивами его основная задача), PL/1 - в этом используется оператор array (m,n) и библиотека просто становится не нужна - компилятор сам подставит нужные библиотеки среды времени выполнения. Да и если поискать, подобных решений наверняка найдётся масса. А уровень сложности их не выходит за рамки курсового проекта для любого первокурсника института. В общем или тут самореклама, или глупый розыгрыш. Иначе я это как ни старался, понять не смог.  
Да фигня вся эта цена, библиотека бесплатная - то есть она не оснащена какой-либо защитой от копировани, да и представь встроил бы её в свою программу а она бы щё отказалась работать потом... Маразм, так что её можно тупо копировать :)...
 
Цитата
linux_helper пишет:

                                                               Скорее самореклама...
Скорее хороший продукт  ;)
 
Цитата
Юрий пишет:
Эта библиотека, как абстрактный тип данных - вы не имеете прямого доступа к массиву, у него свой менеджер памяти - у вас есть лишь определёный набор функций для работы с массивом - позволяющий вам делать с ним всё что захотите.
что мешает сделать свой класс и работать через него?

Тем более есть Boost.Array

Цитата
Юрий пишет:
- Часть функций имеют многопоточную оптимизацию, сортировка с оптимизацией под 4-х ядерные процессоры, может значительно ускорить обработку больших объёмов данных.
ага... и тут оппа... и мы делаем fork()

Цитата
Юрий пишет:
- Собственый безопасный формат хранения данных, обеспечит надёжную защиту данных в корпоративной среде и Интернете. Защитит информацию от утечек и потенциальных атак хакеров.

что за алгоритм шифрования используется?
 
Цитата
^rage^ пишет:
что мешает сделать свой класс и работать через него?

Тем более есть Boost.Array

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

Цитата
^rage^ пишет:
ага... и тут оппа... и мы делаем fork()
Сделать можно всё :), всё что душе угодно - это лишь инструмент для уменьшения времени разработки, да и сортировку распараллелить на 4-ре потока, эффективно распараллелить - потребуется написать немало кода...
Цитата
^rage^ пишет:
что за алгоритм шифрования используется?
Превосходный, высокоскоростной и сверх-стойкий собственный алгоритм, не подверженный взлому вообще.
 
\\ сверх-стойкий собственный алгоритм, не подверженный взлому вообще.

ээээ... автор какбэ намекает на философский камень
 
Цитата
linux_helper пишет:

                                                               \\ сверх-стойкий собственный алгоритм, не подверженный взлому вообще.

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

Как бы там нибыло - защита базы способна защитить от любых атак - без знания пароля! Максимльная длинна пароля 255 любых символов, что гораздо больше многих современных алгоритмов!!!
Изменено: Юрий - 08.12.2008 16:35:50
 
Цитата
Юрий пишет:
это лишь инструмент для уменьшения времени разработки, да и сортировку распараллелить на 4-ре потока, эффективно распараллелить - потребуется написать немало кода...
на solaris/hp-ux/aix работает?
 
Цитата
^rage^ пишет:

                                                               ЦитатаЮрий пишет:
это лишь инструмент для уменьшения времени разработки, да и сортировку распараллелить на 4-ре потока, эффективно распараллелить - потребуется написать немало кода...
на solaris/hp-ux/aix работает?
Платформа для применения Windows 95-Vista, родная среда описания Delphi - хотя dll может использоваться и из других языков...
 
Если использовать обычные БД, для нормального функционирования - много мороки... Сервера - в которых постояно находятся уязвимости (один тлько Oracle-бъёт рекорды :) ),  рафик обычно пердаётся в открытом виде - либо надо использовать доп средства и затраты времени на них...
Здесь достаточно использовать одну библиотеку - и ВСЁ!!!
 
Взлом базы данных TJ7:
Из-за того что TJ7 - использует PR-алгоритмы (Protection Random) - то об успехе взлома можно говорить лишь с определённой вероятностью. Рассмотрим основные методы, с учётом архитектурных моментов базы данных - учитывая которые можно расшифровать зашифрованную базу данных:
1) Прямой подбор: это единственный надёжный метод взлома защиты, прямой перебор всех возможных вариантов. Однако следует учитывать, что длинна пароля может быть от 1 до 255 символов, абсолютно любой конфигурации. Первым блоком в базе как раз и является блок проверки пароля: PR2. Это блок вероятностной проверки пароля, другими словами при переборе пароля даже из 3-х символов вы столкнётесь с ситуацией когда на огромное количество паролей - блок возвращает истинный результат, это не будет означать обхода защиты, а в том чтобы убедиться в правильности пароля необходимо попробовать расшифровать базу данных, если неудастся (например её контрольная сумма не сойдётся), то скорее всего неверный пароль и никакой информации о базе узнать не удастся. Исходя из архитектуры PR2-алгоритма, пароль длиннее 64-х символов, можно считать излишним - так как он уже мало влияет на безопасность при прямом переборе, практически не добавляя вариантов.
2) Вычисление внутренего ключа, метод 1: как ни странно для шифрования самих данных в базе используется достаточно простой и быстрый - статический алгоритм шифрования, поэтому узнав ключь к одной из записей его можно узнать ко всем записям без особых затрат времени. Что для этого надо: необходимо точно знать зашифрованную запись и её позицию в базе (строка-столбец) - при этом длина такой записи должна быть достаточно большой, желательно не менее 64-х символов (при попытках декодирования ячейки меньшего чем 30 символа размера, ключ вычислить неудастся). Если удастся расшифровать известный блок - вычислив ключ (а внутренний ключ генерируется полностью из случайных символов с кодом от №0 до №255 - и случайной длинны до 64-х символов), то можно зная позицию расшифрованного ключа - восстановить первоначальный ключ, и соотвественно ключ к каждой ячейке базы данных.
3) Вычисление внутренего ключа, метод 2: обычно не то что неизвестна позиция записи, даже неизвестно сколько строк и столбцов в таблице. Поэтому можно выбрать 2-ве записи (любые но рядом) но желательно большой длинны и желательно знать информацию сохранённую в них и подбирать внутренний ключ к записи до тех пор пока не вернётся нормальная - смысловая строка (хотя это и не означает правильность ключа), или результат который вы заранее знаете. После этого можно попробовать подобрать позицию ключа, пытаясь расшифровать например соседний блок с разными параметрами позиции. Данный метод достаточно сложен и результата скорее всего вы не добъётесь если не будее точно знать содержимое 2-х выбранных блоков.
4) Вычисление пароля-перебором: если база не создана вновь а редактировалась с помощью функции Update - то для хакера это подарок судьбы, данная функция прикрепляет к файлу список изменений PR1-блоками. Конечно PR1-блок вообще не подвержен такому явлению как подбор пароля (потому что не сожержит никаких средств проверки пароля а скоре выглядит в виде чёрного ящика преобразователя входа в выход), но это если вы не знаете заранее результата... Если вы точно знаете какой блок изменялся и что в нём за информация или хотя бы, что в нём за информация - то можно попробовать методом подбора пароля получить нужный результат, при получении резульата попробовать расшифровать базу с этим паролем. Основное достоинство этого метода взлома:
- PR1 немного быстрее PR2, что позволяет увеличить скорость подбора.
- PR1 - не предоставляет вероятностной проверки пароля как PR2, поэтому ложных срабатываний будет очень мало, если они вообще будут.
- в отличае от подбора внутреннего ключа, пароль к базе обычно задаётся человеком и не блещет сверх сложностью и длинной - поэтому затраты времени на расшифровку могут быть значительно меньше.

В любом случае если пароль достаточно надёжен - то для попыток взлома потребуется как минимум очень мощная машина, скорее не из класса персональных вычислительных систем.
Тесты:
6-ти символьный, цифровой пароль (всего 1000000 вариантов) подбирается за 5-10 секунд...(если администратор сглупит и поставит цифровой пароль то первые 8-9 символов можно подобрать даже на персональных ПК).
3-х символьный, сложный пароль (всего 16777216 вариантов) подбирается за 10-12 секунд...(если пароль достаточно сложный и длинный для прямого перебора потребуется сверхмощная машина, и без гарантии )
Внутренний код длинной в 3-ри символа (которых настолько коротких небывает, реальная длинна 40-60 символов), при известной записи и позиции, вычисляется за 4 секунды...


Из вышепреведённого можно сделать вывод - что собственны формат хранения данных - неуязвим, так как вероятность успешного взлома каким-либо вышеприведённым методом - слишком маловероятна и ресурсоёмка...
 
Цитата
Юрий пишет:
Из вышепреведённого можно сделать вывод - что собственны формат хранения данных - неуязвим, так как вероятность успешного взлома каким-либо вышеприведённым методом - слишком маловероятна и ресурсоёмка...
записи расшифровываются "на лету" или же при старте вся база расшифровывается?
 
Цитата
^rage^ пишет:
записи расшифровываются "на лету" или же при старте вся база расшифровывается?
База содержит блок проверки проля - причём этот блок не только возвращает правильно введён пароль или нет - но и возвращает новый внутренний код, из случайного состава символов случайной длинны (конечно не маленький)... Этот внутренний код напрямую для шифрования не используется - он используется для получения одноразового кода шифрования на лету к каждому элементу базы данных (не строке, а именно элементу - ячейке)... Поэтому даже если точно знать что именно записано в ячейке и предположить что алгоритм шифрования слаб дальше некуда, настолько слаб что код шифрования можно вычислить сходу (это лишь пренебрежение стойкостью - на самом деле это невозможно), то даже если вы точно знаете что записано в ячейке - для того чтобы восстановить код к ячейке (который позволит расшифровать только эту ячейку) можно только при многих выполненных условий - одно из главных, длинна строки (ячейки заранее известной хакеру перед атакой) должна превышать длинну внутреннего кода (то есть не меньше 64-х символов) - иначаче бессмысленно вообще пытаться что-то подобрать... Если такая известная строка всё-же нашлась и с учётом пренебрежения стойкости - можно сходу узнать код (так как подбирать примерно 60-ти символьный  случайный код - потребуются неимоверные ресурсы), то вы узнаете код позволяющий декодировать только одну единственную ячейку - которую вы знали заранее!!! Так сказать - это только начало взлома - первый шаг, самое интересное будет ещё в переди...

Суть собственных алгоритмов не только в том чтобы обеспечить их секретность (не открытость алгоритмов - кстате портит им репутацию) - но и обеспечить само применение средств криптографии таким образом - чтобы даже в случае если будет обнаружены серьёзные недостатки сводя на нет всю криптозащиту - нельзя было воспользоваться данной слабостью (или максимально затруднить её использование) из-за особенностей применения алгоритма. Следует учитывать что знать заранее что иенно записано в базе данных - практически невозможно - так как используется ещё и сжатие 5-ть методов (один из которых самообучающийся LZW)... Больнинство методов сжатия завязаны на предистории данных, и более того допускаются ссылки с одной ячейки на другую - без двойной записи одинаковых данных!!!

Поэтому надёжность защиты базы данных обеспечивается лишь надёжностью и секретностью заданного пароля доступа!!!... И огромные вычислительные мощности - здесь не помогут!!!...
 
В качестве основных достоинств библиотеки можно выделить:
- Простота программирования. (Библтотека содержит все основные функции для обработки масивов, поэтому надо програмный код необходимый написать программисту сводится к минимуму).
- Высокая производительность. (Хорошо оптимизированные алгоритмы и многопоточная оптимизация позволят бытро обрабатывать большие объёмы данных).
- Широкий набор возможностей. (В качестве источников данных могут выступать всевозможные форматы, кроме того в определённых разработках использование баз данных вообще можно заменить на функционал данной библиотеки).
- Защищённость. (Собственные форматы данных могут оснащаться надёжной парольной защитой для доступа к данным, с шифрованием самих данных).
- Функционал для многопоточных приложений. (Позволяет легко использовать функционал бблиотеки в многопоточных приложениях).
Страницы: 1 2 След.
Читают тему