添加加密到TCP流?

时间:2012-05-14 00:27:05

标签: c++ encryption tcp liblacewing

我正在使用名为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;  
}  

1 个答案:

答案 0 :(得分:0)

总之:是的。您的两个基本选项是SSL / TLS和IPsec。 SSL将在您的应用程序中实现; IPsec将超出您的控制范围。

请参阅this answer相关问题。

如果您需要有关如何使其适应SSL / TLS的帮助,则必须发布一些网络代码。


修改:如果您不想将源代码修改为Lacewing,在我看来,最简单的解决方案可能是使用stunnel之类的内容来保护您的流量。