Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java EE (J2EE) и Spring > кодирование данных в бд, Hibernate |
Автор: Samotnik 7.8.2012, 19:16 |
привет Нужно в базе закодировать данные некоторых таблиц. Т.е. при утечке дампа базы, что бы невозможно было достать данные в читабельном виде без определенного ключа. Гугление дало результаты. В MySql есть функции encode и decode, которые соответственно шифруют данные по ключу и дешефруют. Вопроса основных два: 1. Где и как хранить этот ключ, чтобы его было очень трудно украсть, в то же время, чтобы приложение имело доступ к этому ключу в любой момент. 2. Как подружить hibernate с этими функциями? Имеется ввиду, что при каждом запросе, хибер должен иметь возможность делать запросы через эти функции + передавать в них ключ. ![]() |
Автор: carper 8.8.2012, 14:49 |
Не знаю как для MySQL, но для Oracle существует прозрачное шифрование, включая шифрование табличных пространств, при этом с конечного пользователя снимается куча проблем, в частности не надо мучать Hibernate. Если все же хочется помучиться. то для Hibernate существуют Interceptors - там вполне себе можно вызывать что-то для шифрования и расшифровки (кстати, а на кой ляд сдались тогда средства MySQL, почему бы не сделать все универсальней и на стороне клиентского приложения, средствами JAVA? На кой сервер грузить вычислительными операциями?) ЧТо касается ключа, то применяйте технологию с ассиметричный шифрованием, при этом закрытый ключ храните там, где вы может организовать большую защиту - в 99% случаев это не технический вопрос. |