我需要一种方法来加密和解密从PHP到C ++,反之亦然。
例如,我需要将加密的ID从PHP Web服务发送到C ++应用程序,然后用C ++解密,反之亦然。
另一个问题:是否有任何方法可以保护Web服务的数据安全?
答案 0 :(得分:0)
答案取决于您需要捍卫什么样的威胁以及您的资源是什么。 正如你可以从你的问题中暗示你在密码学领域不是很了解你应该考虑使用众所周知的解决方案,而不是试图自己发明和/或实现一些加密解决方案。 构建水密加密系统有许多微妙的事情,如果没有彻底的先前研究,建议不建议使用。
如果您希望防止在通过网络传输数据时窃听或更改数据,请考虑使用SSL / TLS保护整个网络连接。 在C端,您可以使用任何允许HTTPS连接的HTTP库。我可能会推荐你libCURL。如果您已经在使用某些类似Qt的框架,则可能有API来发出该HTTPS请求。 在PHP方面,您需要设置服务器以通过https提供此脚本(或整个服务)。请参阅服务器文档以了解它是如何完成的。
对于服务器端,您需要一个证书。如果您只有自己的软件可以连接到该https服务器,那么您可以使用自己的自签名CA获得证书。在Windows和POSIX系统上创建一个会有所不同,但Internet上有很多HowTos。在C代码中发出请求时,请务必将此CA证书设置为唯一可信任的证书。如果您还希望其他软件(如通用浏览器)连接到您的https服务,您必须从任何认可的CA购买SSL证书。
如果您想在两侧使用一些对称密码,那么就会对密钥交换,已知明文攻击,消息身份验证等问题提出严重质疑。我可以在那里为你提供建议,但是为了这个,你要建立的系统的性质和局限性的知识是必不可少的。