ОП заявляет, что они должны передать учетные данные другой службе, что является совершенно другой проблемой, чем хранение и проверка пароля.
В зависимости от степени вашего контроля над партнерской службой или от того, что они предоставляют, наилучшие решения включают в себя предоставляемые поставщиком или отраслевые стандартные подходы, такие как Kerberos, SAML или другой стабильный, безопасный токен-носитель, для передачи доверия. Это глубокая тема.
Но давайте предположим, что вам нужно передать учетные данные через Basic Auth SSL / TLS. Так что теперь вам нужно надежно хранить их в обратимом виде. Чтобы решить эту проблему, я успешно использовал секретный ключ, передаваемый с использованием закрытого ключа сертификата. Это обеспечивает некоторую защиту вашего секрета операционной системой и позволяет пользователям OPS управлять ключами, что желательно. Учетной записи, используемой для запуска вашего процесса, должны быть предоставлены права на просмотр закрытого ключа, который затем завершает цепочку доверия в ОС.
Возможно, вам все еще придется подумать о повороте ключа, который потребует от вас сохранения номера версии с текстом шифра.
Кроме того, SecureString может представлять интерес, но до тех пор, пока все .NET API не разрешат передачу SecureString в качестве части учетных данных, часто вы получаете строку в управляемой куче, которую вы не можете уничтожить.
В любом случае, это не ответ с ложной подачей кода, но из опыта я обнаружил, что управление цепочкой секретов всегда является проблемой, и если вы не можете завершить работу в защищенной инфраструктуре, такой как Active Directory, сертификаты следующая лучшая вещь.