請在不同的電腦中,使用python3測試下方的網路應用程式碼:
一端執行為接收端,需選定通訊埠號1024-65535
一端執行為傳送端,需給定連接位址及埠號
接收端設定密碼,傳送端破解密碼後會中斷兩端程式。
根據該程式說明下列四點,請附上程式執行結果
1. 傳送端暴力破解密碼的策略,2. 設定的密碼長度與破解時間關係,3. 縮短破解時間的策略,4. 結論
import socket
#set port number
password = input("設定密碼:")
port = xxx
s = socket.socket()
s.bind(('', port))
s.listen()
conn, addr = s.accept()
while True:
received = conn.recv(1024).decode()
print(addr, received)
if received == password: break
import socket
import random
import string
#set connecting ip address and port number
addr = 'xx.xx.xx.xx'
port = xxx
s = socket.socket()
s.connect((addr, port))
length = 1
attempts = 0
charset = string.ascii_letters+string.digits+string.punctuation
while True:
send_msg = ''.join(random.choices(charset, k=length))
s.send(send_msg.encode('utf-8'))
for a in range(10000): pass
print(attempts, ": ", send_msg)
attempts = attempts+1
if attempts>pow(256, length): length = length+1
傳送端暴力破解密碼的策路:你想要啊?你要是想要的話你就說話嘛,你不說我怎麼知道你想要呢,雖然你很有誠意地看著我,可是你還是要跟我說你想要啊。《大話西遊之月光寶盒》
設定的密碼長度與破解時間關係:我一生孤獨,唯一相依為命的,就只有這個人頭,你要拿走它,恐怕不是那麼容易!《情聖》
縮短破解時間的策略:問世間情是何物,直教人生死相許?烏啄啄兮鳥啄啄,莫奈何兮莫奈何,你阿媽兮…《逃學威龍2》
結論:你有道靈光從天靈蓋噴出來,你知道嗎?年紀輕輕,就有一身橫練的筋骨,簡直是百年一見的練武奇材,如果有一天,讓你打通任督二脈,那還不飛天啦!《功夫》