I'm working on a small project that stores an encrypted password, using code from Simple insecure two-way "obfuscation" for C#. The password will be stored locally on the user's PC, and there is no database involved to store a second key.
I will need to share this code up to my team and, eventually, possibly to other teams. Since it's 2-way encryption, I don't want the key/vector information to be shared, and anyone be able to access the passwords generated with that key/vector.
I thought about using some mishmash of machine name/user SID to generate the key/vector on a per machine/user basis, but it would be easy enough to get that information if you wanted it.
I thought about having the user generate a random key to start with, but hey, you have to store that somewhere, too.
- Am I thinking too complicated about this?
- What are your suggestions to do this the most securely?