VII。ネットワークプログラミング(HMACは、クライアントモジュールの正当性を検証します)

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)

 

おすすめ

転載: www.cnblogs.com/Sup-to/p/11141417.html