Search code examples
encryptionms-access-2003jetcracking

Decypting an MS-Access 2003 Backend?


From what I've read the encryption on an MS-Access 2003 database (*.mdb) is pretty weak.

I'm working with a legacy JET/MS-Access 2003 database which I have frontend and odbc access to, and I'm having a difficult time using the Microsoft SQL Server Migration Assistant 2008 for Access to port the data. When importing, most of the tables say that the tables are encrypted.

Are there any tools to crack MS-Access 2003 encryption? Is there a way to find out what encryption was used to encrypt it?


Solution

    • Is there a way to find out what encryption was used to encrypt it?

    For Access 2003, I think there is only one type of encoding used. The following is quoted from Encryption level for 2003:

    Access uses RC4 encryption with a 32-bit key which is stored in the header of the file. It is often referred to as "encoding" rather than "encryption" because it is always fully reversible since the encryption key is always available (no matter if you apply ULS or not).

    • Are there any tools to crack MS-Access 2003 encryption?

    Maybe, but I don't know of any. I would open the db file in Access 2003 and use Tools->Security->Encode/Decode Database to create a decoded copy and migrate the copy to SQL Server. If you don't have Access installed, you should still be able to use dbDecrypt (value = 4) as option for the CompactDatabase method.

    DBEngine.CompactDatabase olddb, newdb, locale, options, password