python模块之hmac

# hmac模块使用步骤:
# hmac模块模块的使用步骤与hashlib模块的使用步骤基本一致,只是在第1步获取hmac对象时,只能使用hmac.new()函数,
# 因为hmac模块没有提供与具体哈希算法对应的函数来获取hmac对象。

# hmac_demo.py HMAC算法
# 与hashlib不同之处在于多了key
 
import hmac
 
 
def hmac_demo():
  # 加密
  h = hmac.new(b"sore")
  h.update(b"me")
  h_str = h.hexdigest()
  print(h_str)
 

  # 比较密码
  boolean = hmac.compare_digest(h_str, hmac.new(b"sore", b"me").hexdigest())
  print(boolean)
 
  
 
def hmac_func():
  # 创建key和内容,再都进行加密
  # hmac.new(key, msg=None, digestmod=None) // 创建新的hmac对象, key:键, msg:update(msg), digestmod:hash名称(同hashlib.new())(默认md5)
  hc = hmac.new(b"key")
  print(hc)
  # hmac对象
  hc.update(b"msg") # 字节缓冲区 hc.update(a) hc.update(b) == hc.update(a+b)
  hash_bytes = hc.digest() # 字节hash
  hash_str = hc.hexdigest() # 16进制hash字符串
  hc = hc.copy() # 拷贝hmac副本
  strs = hc.name # hash名称
  print(hc, strs)
  # hmac.compare_digest(a, b) // 比较两个hash密钥是否相同, 参数可为: str / bytes-like object, (注:建议使用,不建议使用a==b)
  boolean = hmac.compare_digest(hmac.new(b"net", b"me").digest(), hmac.new(b"net", b"me").digest())
  print(boolean)
  
 
 
if __name__ == "__main__":
  hmac_demo()
 
  hmac_func()

 

posted @ 2018-03-17 17:12  小学弟-  阅读(321)  评论(0编辑  收藏  举报