【发布时间】:2015-12-09 11:28:08
【问题描述】:
我想在 C++ 应用程序和 PHP 页面之间创建通信。 我已经建立了 SSL 连接,但我也希望对消息进行加密。 例如,这是 PHP 代码:
$textToEncrypt = "my secret message";
$key = "AAAAAAAAAAAAAAAA";
$iv = "BBBBBBBBBBBBBBBB";
$encrypted = openssl_encrypt($textToEncrypt, 'aes-256-cbc', $key, true, $iv);
echo $encrypted;
在 qt C++ 中我有:
void PHPTest::replyFinished(QNetworkReply *reply)
{
QString answer = QString::fromUtf8(reply->readAll());
//Now i have to decrypt "answer", it contains the text encrypted in php.
}
我的问题是:
- 如何在 QT/C++ 中使用 openssl lib 变量解密 “回答”?
- 如何在 QT/C++ 中使用 openssl lib 加密一些文本? (我将使用 openssl_decrypt 在 php 中对其进行解码)
【问题讨论】:
-
如果你有一个 SSL 连接,你的消息将被自动加密(除非你做了一些真的愚蠢的事情,比如配置连接的两端来接受一个空密码套件) .为什么你认为你需要另一个层加密?
-
我想通道ssl已经很确定了。谢谢你。假设我有一个未加密的频道,我很好奇如何在 C++ 中使用加密 opensll 的工具。谢谢
-
一个固定的密钥和 IV 意味着你有一个静态的安全上下文(即,你重用它们)。那很糟。 PHP 的
openssl_encrypt通常也是错误的。您可能应该使用经过身份验证的加密,因为它提供 机密性和真实性。请参阅 OpenSSL wiki 上的 EVP Authenticated Encryption and Decryption。
标签: php c++ qt encryption openssl