这是通过命令行加密的聊天!它是使用ncurs构建整个用户界面完成的。我想做一个聊天的客户端示例,也将从端到头进行加密。
在接受新客户端的连接后,服务器收到的第一条消息是客户端的public key ,后来将其发送到所有侦听插座(客户端)。首先使用已记录客户端的public keys对消息进行加密,然后再将其发送回服务器。其他聆听客户将使用其private key未加密他们的消息。
该项目由3个主要部分组成,
在下面的GIF中,使用telnet(在Linux上安装)打开了右终端,以展示不使用客户端的人如何使用此项目客户端查看用户的消息。
| 官方客户 | 使用telnet连接 |
|---|---|
![]() | ![]() |
下面的示例展示了两个客户端,这些消息是端到端加密的。
官方客户A | 官方客户B |
|---|---|
![]() | ![]() |
在Twitter上定位我|创建一个问题
我能说什么,我喜欢ncurses,我想做一个需要加密的事情的例子,TCP聊天的想法是我想到的第一件事。
这只是一个因好奇而制成的项目,您可能会给该工具提供的用途自负。
此命令行TCP聊天是使用ncurses构建的。
服务器正在不断运行,也可以在Raspberry Pi上与Ngrok结合使用。通过这样做,您可以与其他同行打开聊天,并具有安全的消息传递方式。
客户端具有一个不错的UI,可在终端上使用。客户端首先连接到服务器并将其public key发送到服务器。服务器检索此信息,并使用此客户端将其发送给所有用户。
然后,每个客户将使用其他侦听客户端的public keys加密他们的消息。然后,服务器将获取每个相应的侦听客户端的消息并相应地发送。
一旦在其他客户端接收到加密消息后,它就不会使用用户的private key加密。
每次启动时,客户端都会更新其密钥对。
安装完成后,
根据默认,服务器连接到的端口为54000
启动服务器(如果您正在运行服务器)
source silver_server启动客户
source silver_sniffle -a 127.0.0.1 54000 127.0.0.1和端口54000可以将其更改为您自己的TCP地址,如果您有一个地址。当然,服务器必须在该地址上运行。
sudo apt install libncurses5-dev libncursesw5-devsudo apt-get install libssl-devsudo apt-get -y install cmake 像这样克隆这个存储库,
git clone https://github.com/edghyhdz/silver-sniffle.git一旦进入根项目文件夹silver-sniffle ,
# Lets start by creating the build directory
mkdir build && cd build
# cmake that guy
cmake ..
# Finally
source install.sh install.sh将运行最终安装,该安装将创建一个名为silver_server和silver_sniffle的Terimal快捷方式。
最终项目文件夹结构是以下内容,
.
├── ...
├── build # Directory were project was built
│ ├──silver_server # Server executable
│ ├── executable # Client executable location
│ │ └─── silver_sniffle # Client executable
│ └── certificates # key pair location
└── ...
如果一切都很好,您应该可以通过执行以下操作来运行服务器
source silver_server服务器启动并运行后,您应该能够像这样运行客户端,
source silver_sniffle -a 127.0.0.1 54000您始终可以将客户端重新列为另一个地址。
最相关的参考文献是以下
在代码中可以找到更多参考。
埃德加·埃尔南德斯(Edgar Hernandez)