#服务端
import socket
import os
import socket
import hmac
secrest_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(secrest_key,msg) #参数secrest_key 是你想进行加密的Bytes类型
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('合法的客户端')
else:print('不合法'),conn.close()
客户端
import socket
import hmac
secret_key=b'egg'
sk=socket.socket()
sk.connect(('127.0.0.1',8080))
msg=sk.recv(1024)
h=hmac.new(secret_key,msg)
digest=h.digest()
sk.send(digest)
sk.close()