代码实现题目六:加密传输系统 1、设计客户端程序向服务器端发送数据; 2、客户端从键盘输入的数据在发送之前进行加密,加密方法可选择仿射、移位密码; 3、服务器端接收到数据后进行显示,然后在解密后再次显示。
时间: 2024-05-08 15:16:27 浏览: 56
以下是Python实现的示例代码:
客户端程序:
```python
import socket
# 加密函数,使用移位密码
def encrypt(data):
result = ""
for char in data:
if char.isalpha():
result += chr((ord(char) - 65 + 3) % 26 + 65) # 移位加密,位移为3
else:
result += char
return result
# 连接服务器端
server_address = ('localhost', 8888)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(server_address)
# 循环发送数据
while True:
# 从键盘读入数据并加密
data = input("请输入要发送的数据:")
encrypted_data = encrypt(data)
# 发送加密后的数据
client_socket.send(encrypted_data.encode())
# 如果输入的是exit,则退出循环
if data == "exit":
break
# 关闭socket连接
client_socket.close()
```
服务器端程序:
```python
import socket
# 解密函数,使用移位密码
def decrypt(data):
result = ""
for char in data:
if char.isalpha():
result += chr((ord(char) - 65 - 3) % 26 + 65) # 移位解密,位移为3
else:
result += char
return result
# 创建socket对象并绑定到本地地址
server_address = ('localhost', 8888)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(server_address)
# 开始监听客户端连接
server_socket.listen(1)
print("等待客户端连接...")
# 接收客户端连接并处理数据
client_socket, client_address = server_socket.accept()
print("客户端已连接:", client_address)
while True:
# 接收数据并解密
encrypted_data = client_socket.recv(1024).decode()
decrypted_data = decrypt(encrypted_data)
# 显示解密后的数据
print("收到数据:", decrypted_data)
# 如果接收到的数据为exit,则退出循环
if decrypted_data == "exit":
break
# 关闭socket连接
client_socket.close()
server_socket.close()
```
阅读全文