首页 > 其他 > 详细

验证客户端的合法性:

时间:2018-08-01 15:51:42      阅读:181      评论:0      收藏:0      [点我收藏+]

通常会用hmac模块,和hashlib中的加盐加密算法类似

服务器端提前和客户端约定好key  ,然后可以用os模块里的urandom来生成一组随机的字节

把随机字节发送给客户端去加密处理 ,服务器加密处理后把得到的字节与客户端传过来的进行比较 相同为true则合法 不同则非法

实现代码:

服务端

 1 import os
 2 import hmac
 3 sk=socket.socket()
 4 sk.bind((127.0.0.1,8080))
 5 sk.listen()
 6 key=bdog
 7 
 8 def check_conn(conn):
 9     msg=os.urandom(32)
10     conn.send(msg)
11     h=hmac.new(key,msg)
12     digest=h.digest()
13     client_digest=conn.recv(1024)
14     ret=hmac.compare_digest(digest,client_digest)
15     return ret
16 
17 conn,addr=sk.accept()
18 result=check_conn(conn)
19 if result:
20     print(合法的客户端)
21 else:
22     print(不合法的客户端)
23     conn.close()
24 
25 sk.close()

客户端:

 1 import hmac
 2 sk=socket.socket()
 3 key=bcat
 4 sk.connect((127.0.0.1,8080))
 5 msg=sk.recv(1024)
 6 h=hmac.new(key,msg)
 7 digest=h.digest()
 8 print(digest)
 9 sk.send(digest)
10 
11 sk.close()

验证客户端的合法性:

原文:https://www.cnblogs.com/wen-kang/p/9401508.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!