wood burning stoves 2.0*
The moose likes JDBC and the fly likes Encrypted database with HSQL Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "Encrypted database with HSQL" Watch "Encrypted database with HSQL" New topic
Author

Encrypted database with HSQL

Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9291
    
  17

Howdy ranchers,

I'm using HSQL in my application (server mode) and I want to encrypt the database. The HSQL documentation for this is here which IMO isn't clear enough to understand. I searched the HSQL Forum and mailing archives but found nothing. So has anyone worked with encrypted database with HSQL? I would appreciate any help on this.

Thanks...


SCJP 6 | SCWCD 5 | Javaranch SCJP FAQ | SCWCD Links
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41106
    
  45
First you need to create the encryption key. The following code assumes that "some_table" exists in "some_db" (neither matters), and that you want to use AES encryption.

Store the key in a secure place. Now you can create an encrypted DB like so:

DriverManager.getConnection("jdbc:hsqldb:file:_some_encrypted_db;crypt_key="+key+";crypt_type=AES", "SA", "")

Replace "AES" with whatever cipher you want to use, like DESede. The crypto uses JCE, so anything that JCE supports, HSQLDB does too. You can even use a different crypto provider; the HSQLDB docs explain how.


Ping & DNS - my free Android networking tools app
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9291
    
  17

Ha ha, it worked. Thanks so much Ulf . I tried the CRYPT_KEY command before posting the question here and it didn't work. I was using HSQL 1.8 and I updated it to HSQL 2 and it worked. I start the db in Server mode in my code, so if anyone else does it, you'll have to set the crypt key when setting the database properties in code

If you want to connect to the database using DatabaseManager of HSQL, then the command would be something like this

java -cp hsqldb.jar org.hsqldb.util.DatabaseManager --url "jdbc:hsqldb:hsql://localhost/database_name;crypt_key=KEY_GOES_HERE;crypt_type=AES" --user SA

from the DatabaseManager utility you can create the tables in the database (if you already don't have an encrypted database file)
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Encrypted database with HSQL
 
Similar Threads
how to configure HSQLDB Datasource name in JBoss
How to automate testing with database/web servers
Clean Code: A Handbook of Agile Software Craftsmanship - Database
Problem with handling huge data structures
problem in pro EJB3 chapter 2 code