By default, the data in an UltraLiteJ database is not encrypted. You can encrypt or obfuscate data using the API. Encryption provides secure representation of the data whereas obfuscation provides a simplistic level of security that is intended to prevent casual observation of the database contents.
To encrypt or obfuscate data in the database
Create a class that implements the EncryptionControl interface.
The following example creates a new class, Encryptor, which implements the encryption interface.
static class Encryptor
implements EncryptionControl
{ |
Implement the initialize, encrypt, and decrypt methods in the new class.
Your class should now look similar to the following:
static class Encryptor
implements EncryptionControl
{
/** Decrypt a page stored in the database.
* @param page_no the number of the page being decrypted
* @param src the encrypted source page which was read from the database
* @param tgt the decrypted page (filled in by method)
*/
public void decrypt( int page_no, byte[] src, byte[] tgt )
throws ULjException
{
// Your decryption method goes here.
}
/** Encrypt a page stored in the database.
* @param page_no the number of the page being encrypted
* @param src the unencrypted source
* @param tgt the encrypted target page which will be written to the database (filled in by method)
*/
public void encrypt( int page_no, byte[] src, byte[] tgt )
throws ULjException
{
// Your encryption method goes here.
}
/** Initialize the encryption control with a password.
* @param password the password
*/
public void initialize(String password)
throws ULjException
{
// Your initialization method goes here.
}
} |
Configure the database to use your new class for encryption control.
You can set the encryption control with the setEncryption method. The following example assumes that you have created a new Configuration, config, that references the name of the database.
config.setEncryption(new Encryptor()); |
Connect to the database.
Any data that is added or changed in the database is now encrypted.
Encryption and obfuscation is not available for non-persistent database stores.
| Send feedback about this page via email or DocCommentXchange | Copyright © 2008, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.0 |