hmac的检验客户端合法性

server端

import socket
import os
import hmac

seret_key = b'egg'
sk = socket.socket()
sk.bind(('127.0.0.1',8080))
sk.listen()

def check_conn(conn):
    msg = os.urandom(32)
    conn.send(msg)
    h = hmac.new(seret_key,msg)
    digest = h.digest()
    client_digest = conn.recv(1024)
    return hmac.compare_digest(digest,client_digest)
conn,addr = sk.accept()
res = check_conn(conn)
if res:
    print('合法的客户端')
    conn.close()
else:
    print('不合法的客户端')
    conn.close()
sk.close()

client端

import socket
import hmac

seret_key = b'egg'
sk = socket.socket()
sk.connect(('127.0.0.1',8080))
msg = sk.recv(1024)
h = hmac.new(seret_key,msg)
digest = h.digest()
sk.send(digest)

sk.close()

 

posted @ 2018-09-02 20:35  Woowo  阅读(119)  评论(0编辑  收藏  举报