zoukankan      html  css  js  c++  java
  • 关于hmac调用

    import  hmac
    import base64
    import json
    import urllib
    import hashlib
    #在进行hamc学习之前先进行基础只是的普及:hex,oct,digest,hexdigest
    # # todo hex是将字符串转换为十六进制字节表示,oct是转八进制,digest是返回二进制的摘要字符串值,hexdigest是返回十六进制的字符串值
    res1=hmac.new(key=b"aa",msg=b"bb",digestmod="sha1").hexdigest()
    print(res1)
    #bytes("aa",encoding="utf-8) <<==>>"aa".encode("utf-8")
    res2=hmac.new(key=bytes("aa",encoding="utf-8"),msg=bytes("bb",encoding="utf-8"),digestmod="sha1").hexdigest()
    print(res2)
    #只能比较hmac进行的digest()摘要
    print(hmac.compare_digest(res1,res2))
    
    ##
    res3=hashlib.sha1()
    #do sha1
    res3.update(bytes("aa"+"bb",encoding="utf-8"))
    print(res3.hexdigest())
    
    #练习demo:实验一个签名
    row_data = {
      "project_name": "授权项目",
      "project_desc": "项目描述",
      "project_where_to_put": "项目投放渠道"
    }
    
    message=base64.urlsafe_b64encode(bytes(json.dumps(row_data),encoding="utf-8"))
    print(f"msg type is {type(message)}")
    final_res=hmac.new(key=b"aa",msg=message,digestmod=hashlib.sha1).hexdigest()
    print(f"base64.sha1 and urlencode is {final_res}")
    
    param=urllib.parse.urlencode(row_data) #str
    test=hashlib.sha1()
    test.update("aa".encode("utf-8")+message)
    media=test.hexdigest() # str
    target = base64.b64encode(bytes(media,encoding="utf-8"))
    print(target.decode("utf-8"))
    
    print(b"aa"=="aa".encode("utf-8"))
    print("aa".encode("utf-8")==bytes("aa",encoding="utf-
    

      

  • 相关阅读:
    VMware设置共享文件夹
    非奇异阵
    ICP算法使用遇到的问题
    osgEarth编译的一些问题
    [OpenCV](1)安装与测试
    [PCL]1 PCL点云库安装
    【转载】:【C++跨平台系列】解决STL的max()与numeric_limits::max()和VC6 min/max 宏冲突问题
    matlab将多条曲线绘制在一起
    C++问题
    SLAM学习笔记(3)相关概念
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/12401501.html
Copyright © 2011-2022 走看看