Все о резервировании вашей SecureString, создавая System.String из него в сторону, как это можно сделать?Как преобразовать SecureString в System.String?
Как преобразовать обычную System.Security.SecureString в System.String?
Я уверен, что многие из вас, знакомые с SecureString, ответят, что никогда не следует преобразовывать SecureString в обычную строку .NET, поскольку она удаляет все защитные меры безопасности. Я знаю. Но сейчас моя программа делает все с обычными строками, и я пытаюсь повысить ее безопасность, и хотя я собираюсь использовать API, который возвращает мне SecureString, я не, пытаясь использовать это, чтобы увеличить мои безопасность.
Мне известно о Marshal.SecureStringToBSTR, но я не знаю, как взять этот BSTR и сделать из него System.String.
Для тех, кто может потребовать, чтобы узнать, почему я когда-либо хотел бы это сделать, ну, я беру пароль у пользователя и отправляю его как POST-форму html для входа пользователя на веб-сайт. Итак ... это действительно нужно делать с управляемыми, незашифрованными буферами. Если бы я мог получить доступ к неуправляемому, незашифрованному буферу, я предполагаю, что могу писать побайтовые потоки в сетевом потоке и надеяться, что это защитит пароль полностью. Я надеюсь получить хотя бы один из этих сценариев.
Получил мое голосование слишком много лет спустя, спасибо за помощь! Простое замечание: это также работает как статичное, в собственной памяти. –
Я использовал 'StopWatch', а' SecureStringToString' занял 4.6sec для запуска. Мне мешает. Кто-нибудь получает то же время или что-то быстрее? – radbyx
@radbyx В быстрой и грязной тестовой настройке я могу назвать ее 1000 раз в 76 мс. Первый вызов занимает 0,3 мс и последующие вызовы ~ 0.07мс. Насколько велика ваша безопасная строка и какая версия фреймворка вы используете? –