Я знаю, что есть класс SecureString, но для большинства сценариев я не думаю, что это действительно полезно.Как мне управлять строками пароля в .net?
Например, у меня есть клиент/серверная система. Сервер не нуждается в приложении, сделанным мной, это может быть даже SQL Server без встроенной проверки подлинности. Когда пользователь вводит свой пароль в форме в клиентском приложении, он хранится в ясном тексте в памяти, поэтому, хотя я могу использовать SecureString для его чтения, я не могу понять, как это сделать. Конечно, это может уменьшить поверхность атаки, но не намного ... Даже если бы я сделал, когда пользователь нажимал «ОК», должна генерироваться простая текстовая строка, даже если мне просто нужно вычислить хэш из нее.
Итак, есть ли все равно, чтобы строки паролей плавали вокруг, пока GC не решит вернуть память? Даже тогда, будет ли память стерта, прежде чем она будет использована снова?
Каково утверждение фактической проблемы, которую вы пытаетесь решить? –
, если вы хотите более безопасное приложение, используйте встроенную проверку подлинности. –
@Mitch Wheat: Я хочу, чтобы вы могли безопасно использовать содержимое SecureString. – raven