The only reliable way is to use the master password. If there is no password, you can reverse-engineer any encryption method and decrypt all the stored data just like the product itself does. Sometimes you don't even have to figure it out - you can just tear out the right pieces of code from the product and run them.
And with the password - you need some kind of cryptographically resistant kdf- function convert it into an encryption key and then use either AES or some other encryption algorithm.
The main thing is not to cycle anything cryptographic on your own. Take popular crypto libraries and use standard and modern cryptographic primitives.
However, there is a problem here - if the user forgets the master password, there is no way to retrieve the locally saved data. The key obtained from the password via KDF can be encrypted in some simple way (or even in playtext) and additionally given to the user to save on a flash drive and use to recover the password: if there is no password, the key from the file is applied, then the data are encrypted with the new key obtained from the new user password. It is important just to convince the user not to keep the file on the same computer. If you see this file in the program folder, on the desktop or in "my documents", you should scold the user for disregarding security.
To verify that the password is correct, the data must be provided with some kind of checksum (before encryption).
Everything else is security through obscurity. Doesn't work in the long run.
And with the password - you need some kind of cryptographically resistant kdf- function convert it into an encryption key and then use either AES or some other encryption algorithm.
The main thing is not to cycle anything cryptographic on your own. Take popular crypto libraries and use standard and modern cryptographic primitives.
However, there is a problem here - if the user forgets the master password, there is no way to retrieve the locally saved data. The key obtained from the password via KDF can be encrypted in some simple way (or even in playtext) and additionally given to the user to save on a flash drive and use to recover the password: if there is no password, the key from the file is applied, then the data are encrypted with the new key obtained from the new user password. It is important just to convince the user not to keep the file on the same computer. If you see this file in the program folder, on the desktop or in "my documents", you should scold the user for disregarding security.
To verify that the password is correct, the data must be provided with some kind of checksum (before encryption).
Everything else is security through obscurity. Doesn't work in the long run.