TurboDB Engine Documentation

Data Security

See also

Previous  Top  Next

Normally your TurboDB database tables can be opened by any person who has access to the file and who uses a tool that can read TurboDB database files. To prevent people from doing so, you can define a password for your tables. All TurboDB tools respect this password and will not show the content of the table unless the user has entered the correct password.

While this is a very useful feature in many cases, it is not a true protection for your data, because one can still read the content of a database or table file with any binary editor or even a text editor. This is also true if you assigned a password to the table, because the password does not change the way database values are stored. If you want to secure your data from being viewed by unauthorized people, TurboDB Engine offers a variety of encryption algorithms, which encrypt every record when it is written to the file.

The classic TurboDB encryption algorithm is based on a 32-bit key. As you might know, a 32-bit key in our days is not secure enough to do banking or other high security things. But for most applications this level of security is appropriate and a shorter key speeds up database transactions.

If you need strong encryption for your data, you can use one of the strong encryption algorithms offered in TurboDB. With these algorithms in place, your data is secured from anybody, who does not know the key. With the current state of encryption technology, these ciphers cannot be broken even with sophisticated decryption algorithms and computer hardware.

The encryption method can be defined on database level (for managed databases) or on table level. If you define the encryption on database level, you have to define the encryption method and the password only once when creating the database. And the user must enter the password only once for all tables in the database. Therefore, this is the recommended way.

In previous versions of TurboDB, encryption required both a password and a 32-bit number called the code to connect to a table. Current versions only require one string, the password. For compatibility, the former combination of password and code is now merged into one string like this <password>;<code>. For example the password secret and the code -3871 are now entered as the password secret;-3871.

This is a list of all available security options. They are indicated as the encryption method enumeration in the different libraries.

Name

Description

Key

Compatibility

Default

For tables in managed databases: Takes the encryption parameters from the database. Other tables and databases: No encryption

See respective row

-

None

Neither encryption nor protection

-

-

Protection

The table is not encrypted but requires a password to be opened

The password, e.g. 3Huv

All table levels. All versions of TurboDB for Win32 . TurboDB Managed 2.x and above.

Classic

The table is encrypted with fast encryption and has an additional password.

The password and the numeric encryption code separated by a semicolon, e.g. 3Huv;97809878

All table levels. All versions of TurboDB for Win32 . TurboDB Managed 2.x and above.

Fast

The table is encrypted with a very fast 32-Bit cipher. Sufficient for many purposes but not 100% secure.

An alphanumeric password up to 40 characters, e.g. 3Huv

All table levels. All versions of TurboDB for Win32 . TurboDB Managed 2.x and above.

Blowfish

Encryption with the well-known Blowfish algorithm using a 128 bit key.

An alphanumeric password up to 40 characters, e.g. 3Huv

Table level 4 and above. TurboDB for Win32 5 and above. Not yet supported in TurboDB Managed.

Rijndael

Encryption with the well-known Rijndael algorithm using a 128 bit key. Also known as Advanced Encryption Standard (AES).

An alphanumeric password up to 40 characters, e.g. 3Huv

Table level 4 and above. TurboDB for Win32 5 and above. TurboDB Managed 2.x and above.

AES

Same as Rijndael.

Same as Rijndael

Same as Rijndael