Шифрование файла базы данных Sqlite, который будет упакован в файл pyexe - PullRequest
3 голосов
/ 03 октября 2010

Я работал над разработкой этого аналитического инструмента, чтобы помочь интерпретировать и анализировать базу данных, которая входит в пакет.Для нас очень важно защитить базу данных таким образом, чтобы к ней можно было получить доступ только с помощью нашего программного обеспечения.Каков наилучший способ достижения этого в Python?

Я знаю, что не может быть окончательного решения, но сдерживание - вот что действительно имеет значение.

Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 03 октября 2010

Кто-то заставил Python и SQLCipher работать вместе, перестроив SQLCipher как DLL и заменив Python sqlite3.dll здесь .

3 голосов
/ 03 октября 2010

Этот вопрос появляется в списке рассылки пользователей SQLite примерно раз в месяц.

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

Лучший способ взглянуть на это с точки зрения денег - сколько нужно потратить плохому парню, чтобы получить данные. Обычно это будет максимум несколько сотен долларов. И все, что нужно, это получить ключ одному человеку, и он может опубликовать базу данных для всех.

Так что либо воспользуйтесь веб-службой, о которой говорил Донал, либо просто потратьте несколько минут, чтобы запутать базу данных. Например, если вы используете APSW, вы можете написать VFS в несколько строк, которые XOR для содержимого базы данных, чтобы обычный SQLite не открывал его, а средство просмотра файлов не отображало обычный заголовок SQLite. (В APSW есть пример кода, показывающий, как это сделать.)

Следовательно, любой, у кого есть содержимое базы данных, должен был сделать это сознательно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...