首页 > 系统服务 > 详细

关于hmac调用

时间:2020-03-03 13:13:20      阅读:108      评论:0      收藏:0      [点我收藏+]
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-

  技术分享图片

 

 

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-

关于hmac调用

原文:https://www.cnblogs.com/SunshineKimi/p/12401501.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!