python產(chǎn)生token及token驗證的方法-創(chuàng)新互聯(lián)

1、前言

成都創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計,網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),成都小程序開發(fā),10年建站對成都茶樓設(shè)計等多個方面,擁有多年設(shè)計經(jīng)驗。

最近在做微信公眾號開發(fā)在進(jìn)行網(wǎng)頁授權(quán)時,微信需要用戶自己在授權(quán)url中帶上一個類似token的state的參數(shù),以防止跨站攻擊。

在經(jīng)過再三思考之后,自己試著實現(xiàn)一個產(chǎn)生token和驗證token的方案。接下就把code貼出來。希望讀者指導(dǎo)一下。

2、產(chǎn)生token

原理:

通過hmac sha1 算法產(chǎn)生用戶給定的key和token的大過期時間戳的一個消息摘要,將這個消息摘要和大過期時間戳通過":"拼接起來,再進(jìn)行base64編碼,生成最終的token

實現(xiàn):

import time
import base64
import hmac

def generate_token(key, expire=3600):
 r'''
 @Args:
  key: str (用戶給定的key,需要用戶保存以便之后驗證token,每次產(chǎn)生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")

新聞標(biāo)題:python產(chǎn)生token及token驗證的方法-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://muchs.cn/article48/eijep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、小程序開發(fā)網(wǎng)站營銷、微信公眾號、電子商務(wù)全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)