Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Шифрование информации в БД

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Интересует вот такой вот вопрос!!
меня алгоритм не интересует, важен сам алгоритм этого дела если у меня 2-х звенка..
допустим, я зашифровал информацию которая на данный момент в базе..  
запускается прога, и на первой форме в гриде отображается вся (а точнее первые 25 записей) которая есть таблице...  
так вот собственно и вопрос: что ж получается, что при открытыии первоначально надо будет дешифровать всю таблицу или как? если расшифровывать информацию, то где её хранить?
приведите самы простые примеры реализации шифрования информации в БД!!!
буду очень благодарен!!!

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 21:05 07-02-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S

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

зачем все?? есть поля, например уникальный id или временная метка, которые не надо шифровать. по ним отбираешь последние 25 записей и те расшифровываешь.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:14 07-02-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хе, а какая нагрузка на сервер будет...
ведь пользователь будет прокручивать грид и причём не по стрелочке, а мышой за скрол
в общем, приведите минимальный пример...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 22:21 07-02-2007
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Реальный пример это всем известные FIbPlus c  

Цитата:
 
функцией RegisterBlobFilter(-10, @PackBuffer, @UnpackBuffer);
procedure PackBuffer(var Buffer: PChar; var BufSize: LongInt);
procedure UnpackBuffer(var Buffer: PChar; var BufSize: LongInt);
 

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

Всего записей: 560 | Зарегистр. 05-04-2006 | Отправлено: 23:19 07-02-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo
а можно примерчик на основе выше сказанного...  
и у меня способ доступа к БД реализован через IBX...
можно ли как то через них реализовать?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 23:43 07-02-2007
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S
тяни все данные в датасет на клиенте, где их и расшифровывай. никакой нагрузки при скролле грида на сервер не будет, если датасет позволяет работать в отсоединенном режиме(для .net  - стандартный DataSet, для Delphi - ClientDataSet)

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 23:59 07-02-2007
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S
Вот пример с фетчером и вытягиванием блоба статья называется  

Цитата:
 
Как писать DataSet. Часть вторая
_http://www.p-stone.ru/libr/program/pascal/data/public4/
 


Всего записей: 560 | Зарегистр. 05-04-2006 | Отправлено: 00:33 08-02-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
что то я вообще ни хрена не понял с этого примера..
единственное что я понял, есть метож проще и компактнее...
A_V
и как и тащить в ClientDataSet?
примерчик приведи

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 09:37 08-02-2007
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S

Цитата:
и как и тащить в ClientDataSet?  

вариантов много, например:  
1) создать провайдер на аппсервере, указать в нем хранимку получающую данные, привязать провайдер к cds
2) cds'у сделать Assign Local Data в дизайнере и выбрать твой источник данных (что угодно производное от TDataSet)
3) задать FieldDefs'ы, сделать CreateDataSet и в рантайме Insert'ами заполнить содержимое из твоего источника данных  
 
после чего коннект с сервером можно рвать, все данные будут в клиентдатасете
чтобы не таскать с собой midas.dll указывай в uses midaslib

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 12:24 08-02-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть ли какие то примеры реализации изложенного?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 14:17 08-02-2007
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S
а те что в папке Delphi7\Demos чем не устраивают?

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 15:41 08-02-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A_V
какой именно?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 16:52 08-02-2007
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S
ты что, серьезно не можешь найти примеров с использованием ClientDataSet?
поищи в \Demos по вхождениям слов 'ClientDataSet' или 'CreateDataSet',
найдешь например DbClx\mybasexplorer\AddNewTable.pas..
и еще открою две страшных тайны: есть такой поисковик, гугл называется, а в Delphi по кнопке F1 (ну кто бы мог подумать!) запрятан help!

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 22:31 08-02-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A_V
в общем всё оказалось проще чем здесь излогалось...
сделал через UDF и хранимку...
всё работает и довольно таки шустро...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 06:47 30-10-2007
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DroN_S

Цитата:
сделал через UDF и хранимку

Напрашиваются возражения:
1. Использование функций, особенно не встроенных и ресурсоемких, для применения к каждой строке выборки - верный путь к тормозам.
2. Клиенская расшифровка предпочтительнее т.к. данные не передаются по сети в открытом виде.
3. Клиенская расшифровка предпочтительнее т.к. нагрузка переносится на клиентскую машину, которая, вообще говоря, бОльшую часть времени простаивает.
 
А какого рода информация подлежит расшифровке? Нельзя было обойтись, скажем, вычисляемыми полями, т.е. зашифрованные данные приходят в одном поле, расшифровываются в другое и это другое показывается пользователю? Либо та же расшифровка на OnGetText поля.

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 10:38 31-10-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

да недолго времени так и было сделано...
перенёс всё на сервер, тормозов не замечено пока что...
буду наблюдать ...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 13:27 31-10-2007
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Шифрование информации в БД


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru