Надежно хранить пароль в коде программы?

Мое приложение использует класс RijndaelManaged для шифрования данных. В рамках этого шифрования я использую объект SecureString, загруженный паролем, который преобразуется в байтовый массив и загружается в ключ объекта RajindaelManaged во время выполнения.

Вопрос, который у меня есть, это хранение этой SecureString. Пароль, введенный пользователем, может быть введен во время выполнения, и его можно «безопасно» загрузить в объект SecureString, но если пароль не введен, то мне нужно что-то по умолчанию.

Итак, в конечном итоге вопрос сводится к:

Если мне нужно иметь некоторую известную строку или байтовый массив для загрузки в объект SecureString каждый раз, когда мое приложение запускается, как мне это сделать? «Зашифрованные» данные в конечном итоге дешифруются другим приложением, поэтому, даже если не указан пароль, введенный пользователем, мне все равно нужно зашифровать данные, пока они переходят из одного приложения в другое. Это означает, что пароль по умолчанию не может быть случайным, потому что другое приложение не сможет правильно его расшифровать.

Я думаю, что одним из возможных решений является создание dll, которая выплевывает только одну фразу-пароль, затем я использую эту фразу-пароль и запускаю ее через несколько различных функций хеширования / реорганизации во время выполнения, прежде чем в конечном итоге передать ее в объект secureString. Будет ли это достаточно безопасно?

Редактировать Для ясности *: Зашифрованные данные передаются через файлы между компьютерами. Думайте об этом как о Zip-файле, который всегда имеет пароль, по умолчанию предполагается, что пользователь ничего не вводит напрямую.

Ответы на вопрос(5)

Ваш ответ на вопрос