请用python 设计一个简单的加密传输系统 1、 设计客户端程序向服务器端发送数据; 2、 客户端从键盘输入的数据在发送之前进行移位加密; 3、 服务器端接收到数据后进行显示,然后在解密后再次显示。
时间: 2024-05-05 10:17:55 浏览: 12
这是一个很有趣的问题!以下是一个简单的Python程序,可以实现基于移位加密的客户端和服务器端的简单通信:
客户端程序:
```
import socket
def encrypt(msg, shift):
encrypted_msg = ""
for c in msg:
if c.isalpha():
encrypted_msg += chr((ord(c) - ord('a') + shift) % 26 + ord('a'))
else:
encrypted_msg += c
return encrypted_msg
host = 'localhost'
port = 8888
shift = 3
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
msg = input("Enter message to send to server: ")
encrypted_msg = encrypt(msg, shift)
s.send(encrypted_msg.encode())
data = s.recv(1024).decode()
print("Received encrypted message from server: " + data)
decrypted_msg = encrypt(data, -shift)
print("Decrypted message: " + decrypted_msg)
s.close()
```
服务器端程序:
```
import socket
def encrypt(msg, shift):
encrypted_msg = ""
for c in msg:
if c.isalpha():
encrypted_msg += chr((ord(c) - ord('a') + shift) % 26 + ord('a'))
else:
encrypted_msg += c
return encrypted_msg
host = ''
port = 8888
shift = 3
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(1)
print("Waiting for client connection...")
conn, addr = s.accept()
print("Connected by ", addr)
data = conn.recv(1024).decode()
print("Received encrypted message from client: " + data)
decrypted_msg = encrypt(data, -shift)
print("Decrypted message: " + decrypted_msg)
conn.send(data.encode())
conn.close()
s.close()
```
当你运行这两个程序时,你将会看到客户端程序会要求你输入一个消息,然后将其加密并发送到服务器端,服务器端将解密并显示该消息,然后将其加密后发送回客户端。这个简单的加密传输系统基于移位加密,因此它并不是非常安全,但是它可以作为一个基本的例子来展示如何在Python中使用sockets和移位加密来实现一个简单的加密传输系统。