pythontcp发送字符串_使用Python中的socket发送加密字符串

我制作了一个简单的服务器程序,它能够一次从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加密.请在这方面帮助我.

解决方法:

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

摘要:

1.用于加密和解密的相同密钥

2.使用Crypto.Cipher.AES

AES具有生成密钥,加密和解密数据的方法.以下链接具有实际代码. pycrypto stackoverflow

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

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.

标签:python,sockets,encryption

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值