When the data is on the user's hard drive, it is impossible to prevent the user from accessing it.
Storing it in an obscure format, for example, in some unusual database, will not make it much more complicated. Even database encryption would not be an insurmountable barrier. You need to save the decryption key somewhere in your application, where the detected hacker will find it when searching for long enough.
When you really want to protect your data, there is no way to save it on your own server and allow the program to access it via the Internet. I would recommend using a web service for this.
This, of course, means additional costs for you, since you have to pay for the server. But you also get additional benefits for this:
- You can give each user their own username and password. This greatly complicates the piracy of your product (too many IP addresses from different networks using the same username = probable software pirates).
- Updating your database does not require deployment to users' computers.
- You can write a “cloud” in all of your marketing material :)
source share