验证客户端的合法性:

Posted wen-kang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证客户端的合法性:相关的知识,希望对你有一定的参考价值。

通常会用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()



以上是关于验证客户端的合法性:的主要内容,如果未能解决你的问题,请参考以下文章

验证链接合法性(hmac)

验证客户端合法性

认证客户端的链接合法性

认证客户端的链接合法性

html_js

struts2中服务器端数据校验