Мое приложение использует класс RijndaelManaged для шифрования данных. В рамках этого шифрования я использую объект SecureString, загруженный с паролем, который получает преобразование в массив байтов и загружается в ключ объекта RajindaelManaged во время выполнения.
Вопрос, который у меня есть, - это хранилище этой SecureString. Введенный пароль пользователя может быть введен во время выполнения, и это может быть "безопасно" загружено в объект SecureString, но если пароль пользователя не введен, мне нужно что-то по умолчанию.
Итак, в конечном счете, quesiton сводится к:
Если мне нужно, чтобы какой-либо известный массив строк или байтов загружался в объект SecureString каждый раз, когда мое приложение запускается, как это сделать? "Зашифрованные" данные, в конечном счете, дешифруются другим приложением, поэтому, даже если ни один введенный пользователем пароль не указан, мне все же нужны данные, которые нужно зашифровать, пока они переходят из одного приложения в другое. Это означает, что у меня не может быть пароль по умолчанию случайным, потому что другое приложение не сможет его правильно расшифровать.
Одним из возможных решений, о которых я думаю, является создание dll, который выплескивает только одну кодовую фразу, а затем я использую эту кодовую фразу и запускаю ее через пару различных функций хэширования/реорганизации во время выполнения, прежде чем я в конечном итоге отправлю ее в secureString объект. Будет ли это достаточно безопасным?
Правка Для ясности *: Зашифрованные данные передаются через файлы между машинами. Подумайте об этом как о файле Zip, который всегда имеет пароль, по умолчанию считается, что пользователь ничего не вводил.