我正在使用名为 Lacewing 的 TCP 客户端服务器库。
http://lacewing-project.org/docs/
我注意到我发送和接收的消息都是纯文本格式。鉴于我使用 TCP,有没有办法轻松加密/解密消息?我如何添加类似 TLS en.wikipedia.org/wiki/Transport_Layer_Security 或类似内容的内容?
谢谢
这个库相当高级,但简而言之,这里是客户端服务器:
#include <string>
#include <iostream>
#define LacewingFunction
#include "Lacewing.h"
void onReceive (Lacewing::Server &Server, Lacewing::Server::Client &Client,
char * Data, int Size) {
/* callback body */
std::cout << Data << "\n";
}
void onConnect (Lacewing::Server &Server, Lacewing::Server::Client &Client)
{
std::cout << "Connected!" << "\n";
Client.Send("TestingS");
}
void onReceiveC (Lacewing::Client &Client, char * Data, int Size)
{
std::cout << Data << "\n";
Client.Send("TesingC");
}
int main(int argc, char* argv[])
{
std::string s;
std::cin >> s;
if(s == "server")
{
Lacewing::EventPump pump;
Lacewing::Server* server = new Lacewing::Server(pump);
server->onReceive(onReceive);
server->onConnect(onConnect);
server->Host(1234);
pump.StartEventLoop();
}
else
{
Lacewing::EventPump pump;
Lacewing::Client* server = new Lacewing::Client(pump);
server->onReceive(onReceiveC);
server->Connect("192.168.2.12",1234);
pump.StartEventLoop();
}
return 0;
}
最佳答案
一句话:是的。您的两个基本选项是 SSL/TLS 和 IPsec。 SSL 将在您的应用程序中实现; IPsec 不受您的控制。
参见 this answer一个相关的问题。
如果您需要有关如何使其适应 SSL/TLS 的帮助,则必须发布您的一些网络代码。
编辑:如果您不想修改 Lacewing 的源代码,在我看来最简单的解决方案可能是使用类似 stunnel 的代码。以保护您的流量。
关于c++ - 向 TCP 流添加加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576301/