Ответ 1
Я думаю, вы смущены понятиями. Вы пытаетесь скомпилировать пароль в exe файл, и считаете, что SecureString
сохранит ваш пароль в безопасности. Это не то, что для SecureString
. Прочтите документацию:
(SecureString) Представляет собой текст, который должен быть конфиденциальным, например, путем удаления он из памяти компьютера, когда он больше не нужен.
SecureString
будет защищать только ваш пароль в памяти: 1) шифрует его, пока он находится в памяти, поэтому другие приложения не могут его обнюхать и 2) удалять его из памяти, как только вы закончите с ним.
Если вы скомпилируете свой пароль в exe, хакер может легко получить его оттуда, даже если он зашифрован. Фактически, получить его от exe намного проще, чем получить его из памяти. Шифрование будет лишь немного сложнее, но опытный хакер все еще может расшифровать его после нахождения ключа. Предложение, данное Gseg для его компиляции как встроенного ресурса и вашего предположения о его шифровании в текстовом файле, будет иметь одинаковую проблему.
Все сводится к ключу шифрования , где он хранится? Если вы храните его в exe файле (потому что вам нужно, чтобы ваше приложение расшифровывало его), тогда хакер будет быть в состоянии найти ключ и использовать его для расшифровки вашего пароля. Вам нужно будет хранить его вне exe способом, недоступным хакером. Итак, реальная проблема, о которой вам нужно подумать: Где хранить ключ шифрования, чтобы приложение могло его читать, но хакер не может?.
Теперь, когда ваше приложение извлекает ключ, теперь вы можете расшифровать пароль до переменной SecureString
, чтобы защитить его, пока он находится в памяти, и затем удалите его.