| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Шифрование таблиц базы данных |
| Автор: former 3.3.2006, 19:17 |
| Тема такая: Есть база данных из нескольких таблиц (Paradox) с графическими и текстовыми полями. Как обеспечить шифрование и дешифрование даных (включая графику .jpeg) всей таблицы при закрытии и открытии таблицы из своей программы и обеспечить защиту от просмотра и извлечения данных из других приложений? |
| Автор: Softaz 4.3.2006, 10:24 |
| При простейшем шифровании, когда каждая буква А, скажем заменяется на Z, можно . А в программе, если пользователь ввел слово AAAAAA, то при ображении к базе использовать слово ZZZZZZ. |
| Автор: former 4.3.2006, 17:34 |
| Как зашифровать текст язнаю. То как ты пояснил - это слишком просто. Есть более продвинутые алгоритмы. Добавлено @ 17:36 А вот как шифровать через поток при работе с базой и графику и текст? Вот в чём вопрос. |
| Автор: Albinos_x 4.3.2006, 17:51 |
| в Paradox есть стандартные среддства по шифрованию, по рс4 |
| Автор: former 4.3.2006, 18:07 |
| А как ими пользоваться? |
| Автор: Albinos_x 5.3.2006, 05:14 | ||
|
| Автор: former 5.3.2006, 15:48 |
| Но это получается пароль на базу, а его можно взломать. Есть три универсальных пароля. |
| Автор: Albinos_x 5.3.2006, 17:12 |
| взломать можно любой пароль, вопрос только, сколько это займёт времени... в этом случае будет зависеть от длины пароля и от того как ты его храниш и получаешь... если ты напишешь как я выше написал, то он будет открыто храниться в ехе-нике и его можно будет достать даже обычным блокнотом, точно также если ты дейтсвуешь через константу. Чтоб уйти от этого недостатка его лучше генерировать во время выполнения программы и желательно, чтобы периодически он менялся, тогда взломать будет трудней. Сам же применяемый алгорим шифрования наиболее эффективен при длине пароля 6-8 символов... |
| Автор: former 6.3.2006, 23:43 |
| Я имею виду, что если просматривать таблицу с таким паролем через Corel Paradox, то этими тремя паролями можно открыть таблицу. |
| Автор: Albinos_x 7.3.2006, 00:05 |
| на счёт Corel Paradox не знаю, т.к. не работал с этой программкой, а вот DataBase Desktop зная пароль можно... |
| Автор: former 7.3.2006, 17:57 |
| Создай таблицу, запароль её и попробуй один из следующих кодов: jIGGAe, nx66ppx, cupcdvum. Почёму я и предлагаю шифровать и дешифровать записи во время работы программы через поток. Только не знаю как работать с потоками. |
| Автор: Albinos_x 7.3.2006, 18:55 | ||
а слона то я и не заметил |
| Автор: AlexSuv 7.3.2006, 22:19 |
| Возьми какой-нибудть компонент для работы с базами парадокса с открытым кодом, найди функцию, которая читает/пишет данные из/в таблиц и в этом месте вставить функцию шифрации/дешифрации, можно также сжимать данные, используя библиотеку ZStream например. Насчет криптования очень неплохая библиотека dccrypt http://www.cityinthesky.co.uk, сможешь криптовать хоть с использванием закрытого ключа. Еще в принципе, как вариант, если защита сильныя не нужна можно перед работой расшифровывать файл, а после закрытия зашифрововать, ну это так защитка от новичков, а если хочешь серьезную - работай с исходниками компонентов достуба к БД, хотя это тоже так пыль в глаза пустить, если надо взломают. |
| Автор: former 8.3.2006, 00:14 |
| Для этой цели не нужно искать другие компоненты. Хватит родных. Можно использовать сабытие BeforeAction компонента DBNavigator, отлавливая нажатие кнопок. А вот как в этом случае работаль сo Steam-ом (как например при сохранении jpeg в Paradox). А что это за библиотека ZStream и как ей пользоваться? |
| Автор: AlexSuv 8.3.2006, 13:34 | ||
| Пользваться ZStreamom очень просто:
Вот и все просто, правда? А при чем тут DBNavigator? К сжатию базы понять не могу. И что ты там собрался вешать на BeforeAction ? ИМХО ты что-то не то говоришь former. Если в каких-то нестандартных компнентах будет событие например OnBeforeRawWriteToDatabase, тогда это возможно. |
| Автор: former 8.3.2006, 17:50 | ||||||
Получается, что ты шифруешь BLOB-поле (графика, файмы и т.д.). А как тогда несколько полей одновременно шифровать, тем более если они разного типа? Или ты предлогаешь делать это для каждого поля отдельно?
Яимел ввиду, что событие BeforeAction можно использовать при работе с базой, что бы при перелистовании записей происходила их шифрация и дешифрация (контролируя нажатие кнопок
|
| Автор: AlexSuv 9.3.2006, 04:39 | ||||||||||
Я не писал только про шифровку блобов, просто спросили, как юзать zStream и потоки, я показал на примере, а насчет того чтобы шифровать поля по BeforeAction - это бред, по-нормальному это можно сделать только если перерезать какой-то поток который пишет/читает базу данных в сыром виде. Вот именно в эту процедуру и вклиниться с шифровкой или компрессией. |
| Автор: former 9.3.2006, 18:44 | ||
Вопрос в том, какой? |