Fork me on GitHub

Jackcess Encrypt

Jackcess Encrypt is an extension library for the Jackcess project which implements support for some forms of Microsoft Access and Microsoft Money encryption. Jackcess Encrypt is licensed under the Apache License (as of version 2.1.0).

This project is separate from the main Jackcess project for two main reasons:

  • The encryption support requires an additional library (Bouncy Castle). Making this support separate from the main Jackcess library allows users to avoid including unnecessary libraries.
    • Bouncy Castle Compatability - the Bouncy Castle library made a binary incompatible change in version 1.51. Versions of Jackcess Encrypt 2.1.0 and earlier are only compatible with Bouncy Castle 1.50 and earlier. Jackcess Encrypt 2.1.1 updated to Bouncy Castle 1.52, but added a shim layer which maintains compability with earlier versions of Bouncy Castle as well (see Feature Request 2 for more details).
  • Sourceforge has restrictions on the distribution of software which use encryption. Keeping this support in a separate project allows the main Jackcess library to be distributed more freely.

Brand New License!

In order to match the License changes made in Jackcess 2.1.0, the Jackcess Encrypt project has been relicensed under the Apache License, Version 2.0 (Jackcess Encrypt versions 2.1.0 and higher).

Jackcess Encrypt 2.0

In order to match the API changes made in Jackess 2.0, the Jackcess Encrypt project has made a similar version change. Read the Upgrade Guide for full details.

Sample code

This project's encryption support can be utilized by providing a CryptCodecProvider when opening an Access Database.

  • Open a Database with normal Jet file encoding:
    Database db = new DatabaseBuilder(myDbFile)
      .setCodecProvider(new CryptCodecProvider())
  • Open a Database with an encoding which requires a password to decode:
    Database db = new DatabaseBuilder(myDbFile)
      .setCodecProvider(new CryptCodecProvider("MyDbPassword"))