.net:在一个应用程序中加密一个字符串,使其只能由另一个读取的最佳做法是什么



我有一个应用程序(App1),它需要写出一个加密的字符串。另一个应用程序(App2)需要能够解密和读取该字符串,并通过解密来验证它是否由App1加密。App2应该无法写出新的加密字符串。

我知道这是关于公钥/私钥对的,但我不知道这个领域目前的最佳实践技术是什么,也不知道是哪个.net类实现的?我可以根据需要使用证书。

欢迎提供任何意见。

谢谢。

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

提醒:公钥用于加密,私钥用于验证。此外,签名步骤总是最后一个,因为它是在最终处理的数据上完成的。

最新更新