A.クライアントモジュールのHMACの正当性を確認してください
Pythonの構築されたHMACモジュールは、HMACアルゴリズムの標準を実装します
これは、メッセージ「ハッシュ」のハッシュキーを使用して計算され、
同じメッセージのために、異なるキーは異なるハッシュが生成されますので、HMACアルゴリズムは、標準のハッシュアルゴリズムを使用するよりも安全です。
インポート OSの AA = os.urandom(32 ) プリント(型(AA)、AA) プリント(" **************************** 888 *************************** " ) インポートHMAC メッセージ = B ' のHello World ' キー = B ' 秘密' H = hmac.new (キー、メッセージ、digestmod = 「MD5 」) #最初の引数は、キーのキーであり、2番目の引数が暗号化される文字列であり、3番目のパラメータは、ハッシュ関数である プリント(h.hexdigest()) を印刷(" ************************************************** ***** 888 ") クライアントが合法かどうかを確認するためのテスト ログイン認証依存しないで インポートをHMAC H = hmac.new() #の SECRET_KEYをあなたがバイトを暗号化する 暗号文h.digest =()# のバイナリデータ値の文字列として暗号文#リターン要約、 HMAC .compare_digest() #比較暗号文別の暗号文
1.クライアントの正当性を確認してください
サーバ インポートOS インポートHMACの インポートソケット SECRET_KEY = bの ' 恋人' SK = socket.socket() sk.bind((' 127.0.0.1 '、8600)) sk.listen() DEF CHEK(CONN): MSG = os.urandom (32) conn.send(MSG) H = hmac.new(SECRET_KEY、MSG) DIGE = h.digest() client_dige = conn.recv(1024) リターンhmac.compare_digest(DIGE、client_dige) CONN、ADDR =sk.accept() RES = チェク(コネチカット州) IF RES: 印刷(" 正当な顧客端末" ) はconn.close() 他: 印刷(" 無効な顧客サービス側" ) はconn.close()
クライアント インポートHMACの インポートソケット SECRET_KEY = bの ' 恋人' SK = socket.socket() sk.connect((' 127.0.0.1 '、8600))
MSG = sk.recv(1024) H = hmac.new(SECRET_KEY、MSG) DIGE = h.digest() sk.send(DIGE)