#クライアントがサーバの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