当前位置: 首页 > 知识库问答 >
问题:

在Python中使用套接字发送加密字符串

萧凡
2023-03-14

我制作了一个简单的服务器程序,可以同时从4个不同的客户端接收数据。现在我想用AES-128加密发送一些数据,但应该在服务器端解码。以下是我的服务器代码:

from socket import *
from threading import Thread

def clientHandler():
    conn, addr = s.accept()
    print addr, "is connected"
    while 1:
        data = conn.recv(1024)
        if not data:
            break
        print "Received Message", repr(data)


HOST = "" #localhost
PORT = 15000


s = socket(AF_INET, SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(4)

print "Server is runnig"
#Thread(target=clientHandler).start()
#Thread(target=clientHandler).start()
#Thread(target=clientHandler).start()

for i in range(4):
    Thread(target=clientHandler).start()

s.close()

我从客户端发送这样的数据

from socket import *
s = socket()
s.connect(("localhost",15000))
s.send()

我应该如何修改我的客户端代码和服务器代码,以便在其中包含AES-128加密。。请在这方面帮助我。

共有1个答案

吴鸿彩
2023-03-14

使用Python支持AES的加密模块。您需要一个对称密钥(用于加密和解密的相同密钥)。如果使用相同的密码短语和初始化向量(IV),则可以在服务器和客户端中生成相同的密钥。

总结:1。用于加密和解密2的相同密钥。使用加密。密码AES

AES有生成密钥、加密和解密数据的方法。以下链接包含实际代码。pycrypto堆栈溢出

客户端-调用此方法加密数据并发送加密数据

from Crypto.Cipher import AES

def do_encrypt(message):
    obj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
    ciphertext = obj.encrypt(message)
    return ciphertext

服务器-接收数据并调用此方法来解密数据

from Crypto.Cipher import AES

def do_decrypt(ciphertext):
    obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
    message = obj2.decrypt(ciphertext)
    return message

这是一个示例代码,请确保选择强密码短语和IV。

 类似资料:
  • 问题内容: 我有两个脚本,Server.py和Client.py。我有两个目标: 为了能够一次又一次地从客户端向服务器发送数据。 为了能够将数据从服务器发送到客户端。 这是我的Server.py: 这是我的客户: 该函数首次运行(“ e”进入服务器,我返回返回消息),但是如何使它一遍又一遍地发生(类似于聊天应用程序)?该问题在第一次之后开始。消息不会在第一次之后发送。我究竟做错了什么?我是pyth

  • 我正在研究一个刮刀,它通过Chrome延伸部分工作。它抓取页面上的所有超文本标记语言,并将其发送到过滤和保存数据的python代码。我这样做刮擦的原因是因为网站有蒸馏网络和一个“传统”刮刀被阻止。 我成功地连接了这两个代码,但每当我尝试向python服务器发送“Test”时,它只输出浏览器的标题。 b'GET/HTTP/1.1主机:localhost:18364连接:升级Pragma:no-cac

  • 我有一个问题,然后通过套接字发送列表,它必须是字节样的对象,好吧,我可以转换它字符串,然后做,但问题是字符串,这是很难重建它 列表从字符串,和从库 没有工作,然后我有这样的东西: 这就是问题所在,我必须拥有这些对象,我的问题是如何发送python对象而不需要将其转换为字符串,或者类似于JSON之类的对象符号? 这可以通过Python套接字文档在基本套接字服务器上进行测试。 失败的文本评估: 错误:

  • 问题内容: 我正在使用套接字连接我的Android应用程序(客户端)和Java后端服务器。每次与服务器通信时,我都希望从客户端发送两个数据变量。 1)某种消息(由用户通过界面定义) 2)消息的语言(由用户通过界面定义) 我该如何发送这些消息,以便服务器将每个消息解释为一个单独的实体? 在读取了服务器端的数据并做出了适当的结论之后,我想向客户端返回一条消息。(我想我会没事的) 因此,我的两个问题是如

  • 问题内容: 我正在尝试用Python编写一个实现套接字的程序,每个客户端发送一个PDF文件,服务器接收该文件,标题更改为“ file_number.pdf”(即:file_1.pdf)。出现的问题是只有客户端才能成功发送文件。当第二个客户端尝试发送程序时,它确实崩溃了。我在做什么错,我该如何解决我的代码以允许N个客户端(N <20)连接到服务器并传输文件? 这是服务器代码: 这是客户端代码: 为了