客戶端.py
import socket
HOST = '127.0.0.1'
PORT = 65432
ALPHABET = 'abcdefghijklmnopqrstuvwxyz0123456789.'
message = 'This message is encrypted using Caesar cipher'
def encryptstr(message,key):
#creating a list for new letters
newletters = []
#loop to assign new letter value
for letter in message:
uppercase = letter.isupper()
letter = letter.lower()
#checking if the letter is upper or lower
if letter in ALPHABET:
index = ALPHABET.find(letter)
newindex = (index key) % len(ALPHABET)
letter = ALPHABET[newindex]
if uppercase:
letter = letter.upper()
newletters.append(letter)
#joining the list
return ''.join(newletters)
def findkey():
return 10
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
test = encryptstr(message, findkey())
s.sendall(test.encode()) # How to send key of 10 and Message?
data = s.recv(1024)
print('Received', data.decode())
服務器.py
import socket
HOST = '127.0.0.1'
PORT = 65432
ALPHABET = 'abcdefghijklmnopqrstuvwxyz0123456789.'
def decryptstr(message,key):
#creating a list for new letters
newletters = []
#loop to assign new letter value
for letter in message:
uppercase = letter.isupper()
letter = letter.lower()
#checking if the letter is upper or lower
if letter in ALPHABET:
index = ALPHABET.find(letter)
newindex = (index - key) % len(ALPHABET)
letter = ALPHABET[newindex]
if uppercase:
letter = letter.upper()
newletters.append(letter)
#joining the list
return ''.join(newletters)
def findkey():
return 10
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
message = str(data.decode())
test = decryptstr(message, findkey())
print(test)
if not data:
break
conn.sendall(data)
我試圖用這個當前代碼做的是來自服務器。我希望將變數“10”發送給客戶端。從客戶端到服務器,我想發回兩個變數,一個是“10”,另一個是加密訊息。兩者都發送后,我希望服務器解密訊息并將其列印在螢屏上。
您可能想知道為什么我要來回發送十個,這是因為我會將這個Diffie-Hellman 示例與 合并def findkeys(),謝謝您的時間!
uj5u.com熱心網友回復:
您可以在 json 中發送該 var 而不是單個 var 它可以幫助您同時發送超過 1 個資料
uj5u.com熱心網友回復:
客戶 ...
sock.send(b'10' encrypted_message)
服務器
msg = sock.recv(1024)
code = msg[:2]
encrypted_payload = msg[2:]
你是這個意思嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/452965.html
標籤:Python python-3.x 插座 凯撒密码
