安全发送/检索数据

| 我希望能够以半安全的方式发送和检索数据,而不必使用HTTPS或SSL。 目前,我正在使用盐腌的MD5哈希摘要将数据发布到服务器,如下所示(以防止参数篡改): http://www.myserver.com?name=John&digest=ed076287532e86365e841e92bfc50d8c 但我也想在客户端上加密纯文本数据,然后在服务器上将其解密回纯文本,以便数据看起来像: http://www.myserver.com?name=sK5E4Ld4sw5ie&digest=ed076287532e86365e841e92bfc50d8c 有什么好的方法可以用来完成此任务?     
已邀请:
        最简单的方法是在客户端中包含预共享密钥(例如AES),在服务器上包含预共享密钥。 或者,使用RSA密钥对(客户端上的公用密钥对,服务器上的专用密钥对),但是RSA加密参数将占用更多空间。     
        发送摘要(MD5或其他摘要)将不会阻止篡改,除非可以对其进行验证(通常针对服务器知道的签名和证书)。否则,攻击者可以轻松地同时修改请求的实体和URI中的摘要。您肯定需要使用您的私钥对摘要签名,前提是事先知道您的公钥来进行验证。 尽管您说您不想使用SSL / TLS,但您应该真正研究一下它,因为自制加密技术很少像您想要的那样安全(请参见您自己的示例)。只要您正确使用密钥和/或证书,这应该为您提供完整性(不篡改)和机密性(加密)。 如果要加密实体,可以考虑: PGP / OpenPGP / GPG(您可以在BounceCastle的C#中使用它) XML加密(可能还有XML DSig)。 HTTPsec(尽管我不确定它如何“证明”,并且我不知道任何C#实现)     

要回复问题请先登录注册