KS DB Merge Tools logo KS DB Merge Tools
Documentation
KS DB Merge Tools for SQLite logo for SQLite
 
KS DB Merge Tools for Oracle logo
KS DB Merge Tools for MySQL logo
MssqlMerge logo
KS DB Merge Tools for PostgreSQL logo
AccdbMerge logo
KS DB Merge Tools for Cross-DBMS logo

Open Protected Files Dialog

This dialog is opened with Open protected file(s) toolbar button or using Open database with password button on each side of the Home tab. Also, if we are opening any previously loaded DB using the Recent databases panel on the Home tab, and that DB was loaded previously without Save passwords - this dialog will be opened to enter the password again.

for SQLite, open database dialog

Use the same password and PRAGMAs for both databases - use this option to compare database having the same protection options. In this case only Right file path field will be active for the right side, all other options will be used from the left side.

Display passwords shows all password texts.

Save passwords (to reopen from recent DB list without password request) as mentioned simplifies work with recent databases, however please note that encrypted passwords are saved on your computer in the application settings file.

Encryption selects how the file is protected. Encrypted files are opened using SQLite3 Multiple Ciphers library, which supports the following encryption types:

  • SQLCipher - files created by SQLCipher or libraries based on it, like Microsoft.Data.Sqlite with SQLCipher. By default it opens files created by SQLCipher 4. For files created with other encryption options, the required PRAGMAs must be listed in Apply PRAGMAs when opening connection section, see SQLCipher PRAGMAs below. Couple of PRAGMAs presets are available for encryption used by the popular Microsoft.Data.Sqlite library.
  • RC4 (System.Data.SQLite) - files encrypted by old versions of System.Data.SQLite library (details).
  • AES 128 bit (wxSQLite3) and AES 256 bit (wxSQLite3) - files encrypted by wxSQLite3 library or tools based on it (AES 128, AES 256).
  • ChaCha20-Poly1305 (sqleet) - files encrypted by sqleet library or by SQLite3 Multiple Ciphers with default settings (details).
  • Ascon-128 (details) and AEGIS (details) - files encrypted by SQLite3 Multiple Ciphers with these ciphers.

If a file was encrypted with non-default options of the selected encryption type, these options can be set by PRAGMAs listed in Apply PRAGMAs when opening connection section. Encryption options are applied before the password, all other PRAGMAs are applied after it. PRAGMA cipher is not needed, it is set by the Encryption field. PRAGMA cipher with other encryption type is not allowed, and it is not allowed at all for None. The password can be set only by the Password field, PRAGMAs key, hexkey, rekey and hexrekey are not allowed.

Test buttons are available to test encryption settings without closing dialog. The result is shown under the buttons: 'Good' for successful connection or error text for failure. Long error text is cut, the full text is shown in the tooltip and can be copied by the Copy button.

If you often connect to the same databases, you can save these connection options to *.sqlts files as suggested on this dialog using Save button for each side. Please note that if Encrypt passwords is not selected then passwords are saved as a plain text, so you should save these files to the safe location. These *.sqlts files can be opened directly from the main application window using Open database(s) toolbar button or using command line arguments.

SQLCipher PRAGMAs

For SQLCipher encryption type, PRAGMAs that set encryption options can be written in two ways: using SQLCipher names or using SQLite3 Multiple Ciphers names. The application converts SQLCipher names to SQLite3 Multiple Ciphers names and applies these PRAGMAs before the password. All other PRAGMAs are applied as is, after the password.

Both ways give the same result. For example, a file created by SQLCipher 3 can be opened with one line:

PRAGMA legacy = 3;

or with the same settings listed one by one (the "Microsoft.Data.Sqlite 2.x (SQLCipher 3.x)" preset):

PRAGMA cipher_page_size = 1024; PRAGMA kdf_iter = 64000; PRAGMA cipher_hmac_algorithm = HMAC_SHA1; PRAGMA cipher_kdf_algorithm = PBKDF2_HMAC_SHA1;

SQLCipher PRAGMA SQLite3 Multiple Ciphers PRAGMA Meaning
cipher_compatibility = 1..4 legacy = 1..4 Use default settings of the SQLCipher major version. Without this PRAGMA, SQLCipher 4 settings are used.
cipher_page_size = 1024 legacy_page_size = 1024 Page size
kdf_iter = 64000 kdf_iter = 64000 Number of key derivation iterations
cipher_kdf_algorithm = PBKDF2_HMAC_SHA1 | PBKDF2_HMAC_SHA256 | PBKDF2_HMAC_SHA512 kdf_algorithm = 0 | 1 | 2 Key derivation hash algorithm
cipher_hmac_algorithm = HMAC_SHA1 | HMAC_SHA256 | HMAC_SHA512 hmac_algorithm = 0 | 1 | 2 HMAC hash algorithm
cipher_use_hmac = ON | OFF hmac_use = 1 | 0 Use HMAC
cipher_plaintext_header_size = 32 plaintext_header_size = 32 Size of not encrypted database header

Last updated: 2026-09-24