Pythonは、クライアントの正当性を検証します

目的:サーバーに接続するクライアントを決定します

サーバー
のインポートソケット
 インポートHMAC
 インポートOS 
SECRET_KEY =バイト(' トム'、エンコード= ' UTF-8 ' 
SK = socket.socket()
sk.bind((' 127.0.0.1 '、8010 ))
sk.listen()
接続し、ADDR = sk.accept()


DEFのcheck_client(コネチカット州):
     "" " 
    暗号化されたHMACモジュールを使用
    )(新しいバイトデータ型の場合
    :PARAMコネティカット:
    :リターン:TrueまたはFalse 
    " "" 
    MSG = OS。    urandomの(32)osモジュールよいランダム
    conn.send(MSG)
    H = hmac.new(SECRET_KEY、MSG)
    server_digest = h.digest()
    client_digest = conn.recv(1024 リターンhmac.compare_digest(server_digest、client_digest)


RET = check_client(接続)
 IF RET:
     印刷' クライアントが正当なクライアントである' 
    connect.close()
印刷' クライアントが正当なクライアントではない' 
    connect.close()
sk.close()
クライアント
インポートソケット
 インポートHMACの
SECRET_KEY =バイト(' トム'、エンコード= ' UTF-8 ' 
SK = socket.socket()
sk.connect((' 127.0.0.1 '、8010 ))
MSG = sk.recv(1024 
H = hmac.new(SECRET_KEY、MSG)
client_server = h.digest()
sk.send(client_server)
sk.close()

 

おすすめ

転載: www.cnblogs.com/wt7018/p/10991819.html