>>HI Robin,
>>
>>>My problem is that anyone with half a brain and Access - or Excel for that matter - can browse a dbf. I need to prevent anyone from accessing my data unless they are using 'the' application.
>>
>>Look in the FAQ section under Databases for a FAQ called "Encoding or Encrypting" or something. The LowLevel Header solution may work well in your case.
>
>None of the above solutions is reliable - in both cases, the files can be copied and read, and without the keys, renders the data useless. And to make matters worse, it'll really slow down anything that needs an index, since the index has to call the decryption routine to maintaint he data, too.
>
>In the second case, the data is exposed whenever someone has the file open in 'your' app.
>
>The real solution if this is a true necessity is to use a backend database to manage the data, and make it implement access control based on your application identifying itself.
A back-end database (or one emulated via a COM object that has exclusive access to the tables) gives you the best protection, because users can't delete or damage the tables.
Short of that, the Cryptor product encrypts tables on-disk so they can't be deciphered by any other application. Unlike the simple approaches of modifying the file header, the tables are ALWAYS encrypted even while your app is running, and decrypted on-the-fly, in memory, as required.
This approach does not protect you from file deletion or wilful damage, but it does prevent undetectable tampering.
www.xitech-europe.co.uk has a lot more information on this product.
Regards. Al
"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov
Neither a despot, nor a doormat, be
Every app wants to be a database app when it grows up