(Если это дубликат сообщения, пожалуйста, укажите мне на оригинал или скажите, что искать. Я ничего не смог найти. Спасибо!)
Итак, у меня есть зашифрованное значение, сохраненное в строке базы данных. Я хочу получить значения столбца для строки базы данных и сохранить их в экземпляре класса. Безопасно ли создавать общедоступное свойство класса для расшифрованного значения?
public class *DataRow*
{
public string *DataElement* { get; set; }
public string *Value_Decrypted* { get; set; }
}
Может ли внешний процесс как-то получить доступ к публичному свойству? Нужно ли использовать SecureString (или что-то еще) для защиты от взломов памяти? Помогает ли защита данных .NET в этом?
Есть ли где-нибудь практическое руководство/пошаговое руководство о том, как с этим справиться (надеюсь, без особых затрат на кодирование)?
Это похоже на довольно простые вопросы (стыдно), и я слышал разговоры об этих проблемах, но в своих поисках я ничего не нашел. Не знал, что искать (кроме того, что указано в заголовке поста).
Как всегда, любое направление будет высоко оценено.
Благодарю вас!
РЕДАКТИРОВАТЬ:
Спасибо всем за ответы. Пароль был ПЛОХИМ примером - я понимаю, что это не рекомендуется и обычно не нужно расшифровывать пароль. Я предполагаю, что мой вопрос более общий, относительно того, как обрабатывать данные, которые необходимо расшифровать. Я обновил свой пример, чтобы ссылаться на зашифрованное/расшифрованное значение вместо пароля.
Я пишу общую программу мониторинга, и мне нужно сохранить значения доступа, пути и команды в базе данных. Я считаю, что лучше всего зашифровать эти значения, чтобы минимизировать воздействие на нашу инфраструктуру и т. д.
Похоже, консенсус заключается в том, что сохранение расшифрованного значения в любой форме, свойстве или ином — плохая идея.
Теперь я думаю, что буду хранить только зашифрованное значение, а затем расшифровывать его с помощью SecureString каждый раз, когда мне это нужно.
Всем еще раз спасибо!!
User
, как только он у вас появится? - person Scott Chamberlain   schedule 28.05.2014