Как зашифровать базу данных SQLite с помощью FireDAC? - PullRequest
0 голосов
/ 29 мая 2019

Я создаю базу данных SQLite с помощью DB Browser для SQLite (без шифрования) и открываю с помощью FireDAC в delphi. (Может извлекать данные Например, выберите * из abc).

Как зашифровать эту базу данных SQLite с помощью FireDAC?При вводе имени пользователя, пароля и шифрования выдается сообщение «Шифрованная БД не является шифрованным»

Примечание:

При создании базы данных SQLite из Delphi FireDac я могу использовать шифрование!

Ответы [ 4 ]

1 голос
/ 29 мая 2019

Последние версии Delphi поставляются с примером проекта для работы с шифрованием в базах данных Sqlite, см. Эту документацию .Я сам этим не пользовался, кстати.

Включает этот раздел

Encrypt DB
    Encrypt: Encrypts the database according to the Encryption mode and the password provided.

The sampe uses TFDSQLiteSecurity.SetPassword to encrypt the database with the password provided.

The database password is the combination of <encryption algorythm>:<password>. 
1 голос
/ 30 мая 2019

Чтобы зашифровать базу данных, используйте компонент TFDSQLiteSecurity.Вам также понадобится компонент TFDSQLitePhysSQLiteDriverLink для его сопровождения.

Если база данных не зашифрована, тогда ее пароль - ''.Так что используйте '' как OldPassword и создайте новый пароль в этом случае.Пароли отформатированы как алгоритм: PassPhrase.Смотрите документацию по выбору, я использую AES-256.Кроме того, база данных должна быть закрыта, когда вы делаете это.

...
//Change password
FDSQLiteSecurity1.Password := OldPassword;
FDSQLiteSecurity1.ToPassword := NewPassword;  // example: 'aes-256:mypassword123'
FDSQLiteSecurity1.ChangePassword;
...
//Remove Password
FDSQLiteSecurity1.Password := OldPassword;
FDSQLiteSecurity1.ToPassword := '';
FDSQLiteSecurity1.RemovePassword;
...
1 голос
/ 29 мая 2019

Из Документации

Зашифрованная база данных SQLite

Подход

Один из отличительных SQLite Особенности высокоскоростного шифрования базы данных. Это позволяет вам сделать содержимое файла базы данных конфиденциальным и обеспечить целостность контроль над файлом базы данных. Формат зашифрованной базы данных не совместим с другими подобными расширениями шифрования SQLite. Это значит что вы не можете использовать зашифрованную базу данных, зашифрованную не-FireDAC библиотеки. Если вам нужно сделать это, то вам нужно расшифровать базу данных с оригинальным инструментом и зашифруйте его с помощью FireDAC.

0 голосов
/ 16 июня 2019

Я столкнулся с несколькими проблемами, когда впервые попытался зашифровать базу данных SQLite для использования с Embarcadero FireDAC.Также вся информация, опубликованная Embarcadero, всплывает снова и снова на разных форумах.Мой случай был решен на основе поддержки сообщества, но когда время позволило, простое приложение Delphi было собрано и доступно на Sourceforge.Надеюсь, что это немного облегчит шифрование / дешифрование, особенно для новичка https://sourceforge.net/projects/sqlite-sequrity-for-delphi/

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