Я создаю базу данных SQLite с помощью браузера БД для SQLite (не зашифрованного) и открываю с помощью FireDAC в delphi (можно получить данные, например, выберите * из abc).
Как зашифровать эту базу данных SQLite с помощью FireDAC? При вводе имени пользователя, пароля и шифрования появляется сообщение «Cipher DB не зашифровано».
Примечание:
При создании базы данных SQLite из Delphi FireDac я могу использовать шифрование!
@MartynA Я открываю незашифрованную базу данных с помощью firedac, как эта база данных шифруется с помощью firedac?
Из Документация
SQLite Encrypted Database
Approach
One of the distinctive SQLite features is the high-speed strong database encryption. It allows you to make database file content confidential and enforce integrity control on the database file. The encrypted database format is not compatible with other similar SQLite encryption extensions. This means that you cannot use an encrypted database, encrypted with non-FireDAC libraries. If you need to do this, then you have to decrypt a database with an original tool and encrypt it with FireDAC.
Tnx для ответа, но мой вопрос в том, как зашифровать незашифрованную базу данных с помощью firedac?
@Pointer Я не думаю, что это проблема Firedac или Delphi. Я думаю, что это версия библиотеки SQLite, используемая для создания файла базы данных.
@NasreddineGalfout Нет, вы можете сделать это с помощью компонента TFDSQLiteSecurity
на вкладке FireDAC Services
. Не забудьте также использовать TFDSQLiteValidate
для проверки файла базы данных, а также обязательно сделайте резервную копию файла базы данных с помощью компонента TFDSQLiteBackup
перед шифрованием вашей базы данных.
@Сами О чем ты говоришь. Это цитата из документации на сайте производителя продукта. То, что вы сказали, верно, но не в этом контексте.
ОП спрашивает «Как зашифровать незашифрованную базу данных SQLite», речь идет не о том, может ли он зашифровать уже зашифрованную базу данных с помощью другого инструмента. :)
Последние версии 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>.
Чтобы зашифровать базу данных, используйте компонент 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;
...
Я столкнулся с несколькими проблемами, когда впервые попытался зашифровать базу данных SQLite для использования с Embarcadero FireDAC. Также вся информация публикуется Embarcadero, вопрос снова и снова появляется на разных форумах. Мое дело было решено на основе поддержки сообщества, но когда время позволило, простое приложение Delphi было собрано и доступно на Sourceforge. Надеюсь, это немного облегчит шифрование/дешифрование, особенно для новичков. https://sourceforge.net/projects/sqlite-sequrity-for-delphi/
Боюсь, ваш вопрос совсем не ясен. Вы спрашиваете, как использовать FireDAC для открытия созданной базы данных Sqlite с шифрованием с использованием браузера D в sqlitebrowser.org, используя версию 3.11.2 или более позднюю? Если нет, то что именно вы спрашиваете