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