验证客户端合法性

Posted 小杨的冥想课

tags:

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

验证客户端合法性

背景

  • 客户端是提供给用户用的 —— 登陆验证
    • 你的用户就能看到你的client源码
    • 不需要自己写客户端了
  • 客户端是提供给机器使用

代码的实现

#server端
import socket
import hashlib
import os

key = b"yang" #密钥

sk = socket.socket()
sk.bind(("127.0.0.1",9000))
sk.listen()
conn, addre =sk.accept()

num = os.urandom(32) #生成32位的随机字节串
conn.send(num)

md5 = hashlib.md5(key) #动态加盐
md5.update(num) #哈希运算
ret = md5.hexdigest()

info = conn.recv(1024).decode("utf-8")
if info == ret:
    print("验证成功")
else:
    print("验证失败")

conn.close()
sk.close()


#client端
#随机字符串+密钥,客户端与服务器进行相同的算法(哈希运算)
import socket
import hashlib
key =b"yang"

sk = socket.socket()
sk.connect(("127.0.0.1",9000))
num = sk.recv(1024)

md5 = hashlib.md5(key) #动态加盐
md5.update(num) #哈希运算
ret = md5.hexdigest()
sk.send(ret.encode("utf-8"))

sk.close()

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

数据验证

SpringMVC的数据验证

SQL注入-预防

33验证客户端的合法性socketserver模块

Python全栈开发--socketserver模块和验证客户端链接的合法性

03 验证合法性连接的客户端