如何解决.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
提醒:公钥用于加密,私钥用于验证。同样,签名步骤始终是最后一步,因为它是在最终处理的数据上完成的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。