关键词搜索

源码搜索 ×
×

Python网络编程 —— 验证客户端的合法性

发布2021-09-20浏览592次

详情内容

1、验证客户端的合法性

登录:只要有个性化设计的时候就需要登录

登录和合法性验证二选一,如果做登录的功能就不需要做合法性验证

server

  1. import os
  2. import socket
  3. import hashlib
  4. SECRET_KEY = b'yongliang' # 设置秘钥
  5. def check_client(conn):
  6. randbytes = os.urandom(32) # 随机产生一个32位的随机字节
  7. conn.send(randbytes) # 将随机字节发送给client
  8. # 服务端对随机字节进行hashlib动态加盐(秘钥)加密
  9. md5 = hashlib.md5(SECRET_KEY)
  10. md5.update(randbytes)
  11. code = md5.hexdigest()
  12. code_cli = conn.recv(32).decode('utf-8') # 接收client发来的加密后的字符串
  13. return code == code_cli # 进行客户端验证 返回bool值
  14. sk = socket.socket()
  15. sk.bind(('127.0.0.1',9001))
  16. sk.listen()
  17. while True:
  18. conn,addr = sk.accept()
  19. if not check_client(conn):continue # 验证判断 如果得到False -->continue
  20. print('进程正常的通信了') # 验证通过 执行其他程序

client

  1. import os
  2. import socket
  3. import hashlib
  4. SECRET_KEY = b'yongliang'
  5. def check_client():
  6. randbytes = sk.recv(32) # 接收服务端发送的32位的随机字节
  7. # 客户端对随机字节进行hashlib动态加盐(秘钥)加密
  8. md5 = hashlib.md5(SECRET_KEY)
  9. md5.update(randbytes)
  10. code = md5.hexdigest().encode('utf-8')
  11. sk.send(code) # 将加密后的字符串发送到server
  12. sk = socket.socket()
  13. sk.connect(('127.0.0.1',9001))
  14. check_client()
  15. print('正常的客户端通信') # 验证通过 则执行其他程序

明文进行加密python教程时也可以用 hmac 模块

  1. import os
  2. import hmac # 在加密内容基础上增加盐
  3. SECRET_KEY = b'yongliang'
  4. randbytes = os.urandom(32) # 随机产生一个32位的字节
  5. mac = hmac.new(SECRET_KEY,randbytes) # 对随机字节进行动态加密
  6. ret = mac.digest()
  7. print(ret)

天之涯,海之角,吾与money天荒地老。

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载