python产生token及token验证的方法-创新互联
1、前言
成都创新互联公司是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,成都小程序开发,10年建站对成都茶楼设计等多个方面,拥有多年设计经验。最近在做微信公众号开发在进行网页授权时,微信需要用户自己在授权url中带上一个类似token的state的参数,以防止跨站攻击。
在经过再三思考之后,自己试着实现一个产生token和验证token的方案。接下就把code贴出来。希望读者指导一下。
2、产生token
原理:
通过hmac sha1 算法产生用户给定的key和token的大过期时间戳的一个消息摘要,将这个消息摘要和大过期时间戳通过":"拼接起来,再进行base64编码,生成最终的token
实现:
import time import base64 import hmac def generate_token(key, expire=3600): r''' @Args: key: str (用户给定的key,需要用户保存以便之后验证token,每次产生token时的key 都可以是同一个key) expire: int(大有效时间,单位为s) @Return: state: str ''' ts_str = str(time.time() + expire) ts_byte = ts_str.encode("utf-8") sha1_tshexstr = hmac.new(key.encode("utf-8"),ts_byte,'sha1').hexdigest() token = ts_str+':'+sha1_tshexstr b64_token = base64.urlsafe_b64encode(token.encode("utf-8")) return b64_token.decode("utf-8")
本文名称:python产生token及token验证的方法-创新互联
网址分享:http://cdiso.cn/article/eijep.html