day31-HMACモジュールは、クライアントが正当なものであるかどうかを検出します

クライアントがサーバのIPアドレスとポートを知っている場合、あなたは、サーバー側では、安全な情報を接続することができます。
#の使用os.urandamはランダムに32ビットバイトを生成し、その後、HMACを暗号化してクライアントに送信します。
#1 サーバー:
インポートソケット
 インポートHMAC
 インポートOS 
SECRET_KEY = B ' ダキション' 
SK = socket.socket()
sk.bind((' 127.0.0.1 '、9002 ))
sk.listen()
コネチカット、ADDR = sk.accept()

DEF 比較(コネチカット):
    MSG = os.urandom(32) ランダムな32ビット・バイト、それぞれが異なります。
    conn.send(MSG)       それがコードとして送り出さ
    hmac.new = H(SECRET_KEY、MSG) 暗号化コードと暗号化されたオブジェクト得るSECRET_KEY 
    ダイジェスト= h.digestを()  暗号文 
    client_digest = conn.recv(1024) 受信クライアント暗号文
    戻り hmac.compare_digest (ダイジェスト、client_digest) 比較(コネチカット州)に比較暗号文とクライアントの暗号文、およびリターン 
RET = 比較(コネチカット州)

IF RET:
     印刷正当なクライアント印刷不法なクライアント

conn.close()
sk.close() 

クライアント:
インポートソケット
 インポート HMAC
SK = socket.socket()
sk.connect((' 127.0.0.1 '、9002 ))

SECRET_KEY = B ' ダキション'  このキーは良い契約です。
= sk.recv MSG(1024)     32ビットを受け取るがバイト 
、H = hmac.new(SECRET_KEY、MSG)    #1 オブジェクトhを与えるために、暗号化を。
= h.digestダイジェスト()            暗号文
sk.send(ダイジェスト)

)(sk.close

 

おすすめ

転載: www.cnblogs.com/python-daxiong/p/11417769.html