Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > кодирование данных в бд, Hibernate


Автор: Samotnik 7.8.2012, 19:16
привет
Нужно в базе закодировать данные некоторых таблиц. Т.е. при утечке дампа базы, что бы невозможно было достать данные в читабельном виде без определенного ключа.
Гугление дало результаты. В MySql есть функции encode и decode, которые соответственно шифруют данные по ключу и дешефруют.
Вопроса основных два:
1. Где и как хранить этот ключ, чтобы его было очень трудно украсть, в то же время, чтобы приложение имело доступ к этому ключу в любой момент.
2. Как подружить hibernate с этими функциями? Имеется ввиду, что при каждом запросе, хибер должен иметь возможность делать запросы через эти функции + передавать в них ключ.
 smile 

Автор: carper 8.8.2012, 14:49
Не знаю как для MySQL, но для Oracle существует прозрачное шифрование, включая шифрование табличных пространств,
при этом с конечного пользователя снимается куча проблем, в частности не надо мучать Hibernate.

Если все же хочется помучиться. то для Hibernate существуют Interceptors - там вполне себе можно вызывать что-то для
шифрования и расшифровки (кстати, а на кой ляд сдались тогда средства MySQL, почему бы не сделать все
универсальней и на стороне клиентского приложения, средствами JAVA? На кой сервер грузить вычислительными операциями?)

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)