.net: Какова лучшая практика для шифрования строки в одном приложении, чтобы она могла быть прочитана только другим? - PullRequest
2 голосов
/ 29 мая 2011

У меня есть приложение (App1), и оно должно записать зашифрованную строку.Другое приложение (App2) должно иметь возможность дешифровать и читать эту строку и, расшифровывая, проверять, что она была зашифрована App1.Приложение 2 не должно быть в состоянии записать новую зашифрованную строку.

Я знаю, что это относится к парам открытого / закрытого ключей, но я не знаю, какова текущая передовая технология в этой области, и яне знаете, какие классы .net это реализуют?Я могу использовать сертификат по мере необходимости.

Любой вклад приветствуется.

Спасибо.

1 Ответ

3 голосов
/ 29 мая 2011

App1 и App2 генерируют свои собственные пары закрытых / открытых ключей и обмениваются парами открытых ключей.Тогда рабочий процесс выглядит следующим образом:

App1 -> Data + App2-PublicKey = Encrypted Data
App2 -> Encrypted Data + App2-PrivateKey = Data

Таким образом, App1 или App2 шифруют данные только с помощью открытого ключа другого, так что только приложение может расшифровать их, используя свой закрытый ключ.Таким образом, обмен данными является безопасным.Если шифрование имеет вид:

App1 -> Data + App1-PrivateKey + App2-PublicKey = Encrypted Data
App2 -> Encrypted Data + App1-PublicKey + App2-PrivateKey = Data

, то теперь обмен данными является безопасным и аутентичным (т. Е. Два приложения будут уверены, что это другое приложение, связывающееся с ним).Ссылка: http://en.wikipedia.org/wiki/Transport_Layer_Security

Напоминание: открытый ключ для шифрования, а закрытый ключ для проверки.Кроме того, шаг подписи всегда является последним, поскольку он выполняется для окончательно обработанных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...