I realize that the answer to this question is likely quite obvious (if somewhat inconvenient to me), but I'm hoping someone will have an ingenious solution.
I'm slowly building an application in my free time that I hope will be useful at work. It's a simple tracking application for the assignment of peer reviews. Basically, I'm just trying to teach myself some C#.
My problem is that since I really can't install anything, and I can't use my own website for this (two reasons - 1) the DoD probably wouldn't allow it, 2) I want this to be a desktop (WinForms) project, not Web), I'm using Jet (like Access) as a data store.
I need a way to secure the database from prying eyes, since there are some things I really only want an Admin-level user (like a team lead) to access. I've basically decided to set a database password. A password will be picked at install time, used to secure the database, then encrypted for the application to pick up, decrypt, and use to open db connections.
My problem is that I want this code to be somewhat public. I eventually want to post my code on my website, and ask StackOverflow and maybe the programming subReddit for some quick reviews and insights. Think of it like a poor mans mentorship program. For maintenance, especially after I leave this job, the source will eventually be available to my co-workers. If they have access to the encrypted 'key file' and the source, they'll be able to determine the db password.
Is there any way to code this so that even with the file and the code, my co-workers won't be able to get into the db? I assume not, but it's worth something to ask.
If there's no way to do this, I guess my second option is to change the encryption when I put it up on my site (change the encryption equivalent to a hash - IV? - to something different when published), and provide the source in a password-protected rar-file, giving the password only to management.
Any ideas?