Я пишу приложение на C #, которое будет с открытым исходным кодом, и мне нужно иметь возможность хранить сохраненную информацию для входа в систему для каждого пользователя. Обычно я просто шифрую пароль и затем сохраняю его в файле настроек пользователя, но я беспокоюсь, что из-за того, что код является открытым исходным кодом, он как бы побеждает точку шифрования. Поскольку все, что кому-либо нужно, - это посмотреть на код и взять ключ шифрования.
Конечно, это, по крайней мере, сделает его намного сложнее, чем пароль, хранящийся в виде обычного текста. Но есть ли какой-нибудь достойный способ шифрования пароля, но сделать его расшифровку, по крайней мере, чрезвычайно трудным, даже если у вас есть источник? Может быть, сделать так, чтобы это было, по крайней мере, почти
невозможно расшифровать на любом компьютере, кроме того, на котором он был зашифрован?
РЕДАКТИРОВАТЬ: Уточнение ... Я храню пароли стороны КЛИЕНТА, а НЕ пароли для подтверждения своего логина для службы. Это клиент для уже существующего веб-сервиса, который я не могу контролировать. Я просто хочу хранить пароли локально для автоматического входа ... как любой чат-клиент.
РЕДАКТИРОВАТЬ 2: Полностью извините за то, что не было ясно до Но в какой-то момент пароли должны быть получены в виде открытого текста, и хэширование НЕ является опцией :( Даже если служба разрешит мне передать хэш пароля, это будет своего рода побеждать цель, потому что хэш будет так же хорош, как и пароль: P