1

我需要一种从 PHP 到 C++ 的加密和解密方法,反之亦然。

例如,我需要将加密的 ID 从 PHP Web 服务发送到 C++ 应用程序,然后在 C++ 中解密,反之亦然。

另一个问题:有什么方法可以保护来自和传入 Web 服务的数据?

4

1 回答 1

0

答案取决于您需要防御什么样的威胁以及您的资源是什么。正如您的问题所暗示的那样,您在密码学领域不是很了解,您应该考虑使用众所周知的解决方案,而不是尝试自己发明和/或实施一些密码解决方案。构建防水密码系统有许多微妙的事情,不建议在没有深入研究的情况下构建一个。

如果您想在通过网络传输数据时防止有人窃听或更改数据,请考虑使用 SSL/TLS 来保护整个网络连接。在 C 端,您可以使用任何允许 HTTPS 连接的 HTTP 库。我可能会向您推荐libCURL。如果您已经在使用 Qt 之类的框架,则可能有 API 可以发出该 HTTPS 请求。在 PHP 方面,您需要设置服务器以通过 https 提供此脚本(或整个服务)。请参阅您的服务器文档以了解它是如何完成的。

对于服务器端,您需要一个证书。如果您只有自己的软件可以连接到该 https 服务器,那么使用您自己的自签名 CA 的证书就足够了。在 Windows 和 POSIX 系统上创建一个会有点不同,但互联网上有很多 HowTos。当您在 C 代码中提出请求时,请务必将此 CA 证书设置为唯一受信任的证书。如果您还希望其他软件(例如通用浏览器)连接到您的 https 服务,则必须从任何公认的 CA 购买 SSL 证书。

相反,如果您想在双方都使用一些对称密码,那将对密钥交换、已知的明文攻击、消息身份验证等问题提出严重的问题。我可以在那里为您提供建议,但是对于您将要构建的系统的性质和局限性的知识将是必不可少的。

于 2012-10-12T14:50:18.970 回答