Защита паролем базы данных sqlite3 с помощью python [duplicate]

Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.

например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.

public Class myClass
{
   public int prop1 {get;set;}
}

Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref.prop1 = 1;  //This line throws error
     }
}

выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.

Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref = new myClass();
        ref.prop1 = 1;  
     }
}
3
задан relima 3 October 2010 в 05:55
поделиться

2 ответа

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

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

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

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

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

3
ответ дан Roger Binns 27 August 2018 в 22:31
поделиться

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

4
ответ дан Marcelo Cantos 27 August 2018 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: