python hmac模块验证客户端的合法性

 更新时间:2020年11月07日 15:16:53   作者:手可摘星辰。  
这篇文章主要介绍了python hmac模块验证客户端的合法性,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

hmac模块:

  比较两个函数的密钥是否一致:

import hmac
import os

msg = os.urandom(32)   #生成32位随机字节码

def wdc():
  key = b'wdc'  #密钥
  ret = hmac.new(key,msg)   #将字节码和key进行加密(必须都为bytes类型)创建一个对象ret
  digest = ret.digest()  #消化
  return digest  #返回消耗后的密文

def yhf():
  key1 = b'wdc'  #密钥
  ret1 = hmac.new(key1,msg)  #将字节码和key1进行加密(必须都为bytes类型)创建一个对象ret1
  digest1 = ret1.digest()   #消化
  return digest1 #返回消耗后的密文

wdc = wdc()
yhf = yhf()
result = hmac.compare_digest(wdc,yhf)  #比较两个密文是否一致,返回Fales/True
print(result)  #输出结果

验证客户端合法性:

  服务端:

import os
import hmac
import socket
secret_key = b'wdc'   #密钥:必须为二进制编码
sk = socket.socket()
sk.bind(('127.0.0.1',8080))
sk.listen()

def check_conn(conn):
  msg = os.urandom(32)  #生成一个32位bytes类型随机码
  conn.send(msg) #发送一个32位的随机字节码
  h = hmac.new(secret_key,msg)   #将密钥和生成的随机字节码匹配加密生成一个对象
  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('合法的客户端')
  conn.close()
else:
  print('不合法的客户端')
  conn.close()

sk.close()

  客户端:

import hmac
import socket
secret_key = b'wdc'   #密钥:必须为二进制编码
sk = socket.socket()
sk.connect(('127.0.0.1',8080))
msg = sk.recv(1024)   #接收信息(接收生成的32位字节码)
h = hmac.new(secret_key,msg)  #将密钥和生成的随机字节码匹配加密生成一个对象
digest = h.digest()   #消化生成密文
sk.send(digest)   #发送生成的密文

sk.close()

以上就是python hmac模块验证客户端的合法性的详细内容,更多关于python hmac模块的资料请关注脚本之家其它相关文章!

相关文章

  • pyqt5中动画的使用详解

    pyqt5中动画的使用详解

    这篇文章主要介绍了pyqt5中动画的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Python中免验证跳转到内容页的实例代码

    Python中免验证跳转到内容页的实例代码

    在本篇文章里小编给大家整理的是一篇关于Python中免验证跳转到内容页的实例代码,有兴趣的朋友们可以学习分享下。
    2020-10-10
  • Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)

    Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)

    这篇文章主要介绍了使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换的一些用法,需要的朋友可以参考下
    2018-04-04
  • pandas 把数据写入txt文件每行固定写入一定数量的值方法

    pandas 把数据写入txt文件每行固定写入一定数量的值方法

    今天小编就为大家分享一篇pandas 把数据写入txt文件每行固定写入一定数量的值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python+opencv实现摄像头调用的方法

    python+opencv实现摄像头调用的方法

    这篇文章主要为大家详细介绍了python+opencv实现摄像头调用的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Python爬虫实现验证码登录代码实例

    Python爬虫实现验证码登录代码实例

    这篇文章主要介绍了Python爬虫实现验证码登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Python的哈希hashlib模块详细解读

    Python的哈希hashlib模块详细解读

    这篇文章主要介绍了Python的哈希hashlib模块详细解读,hashlib是一个提供字符加密功能的模块,包含MD5和SHA的加密算法,具体支持md5,sha1, sha224, sha256, sha384, sha512等算法, 该模块在用户登录认证方面应用广泛,对文本加密也很常见,需要的朋友可以参考下
    2023-09-09
  • python读取文本绘制动态速度曲线

    python读取文本绘制动态速度曲线

    这篇文章主要为大家详细介绍了python读取文本绘制动态速度曲线,多图同步显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python开发常用的一些开源Package分享

    Python开发常用的一些开源Package分享

    这篇文章主要介绍了Python开发常用的一些开源Package分享,常用的开源项目包括WEB开发框架、工具包、数据库操作包、网络操作包等,需要的朋友可以参考下
    2015-02-02
  • 基于python3 的百度图片下载器的实现代码

    基于python3 的百度图片下载器的实现代码

    这篇文章主要介绍了基于python3 的百度图片下载器的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11

最新评论