|
@@ -1,90 +0,0 @@
|
|
|
-# -*- coding: utf-8 -*-
|
|
|
-import hashlib
|
|
|
-
|
|
|
-# 待加密内容
|
|
|
-# strdata = "xiaojingjiaaseafe16516506ng"
|
|
|
-#
|
|
|
-# h1 = hashlib.md5()
|
|
|
-# h1.update(strdata.encode(encoding='utf-8'))
|
|
|
-#
|
|
|
-# strdata_tomd5 = h1.hexdigest()
|
|
|
-#
|
|
|
-# print("原始内容:", strdata, ",加密后:", strdata_tomd5)
|
|
|
-
|
|
|
-import time
|
|
|
-import base64
|
|
|
-
|
|
|
-class base64Object:
|
|
|
- # 生产token
|
|
|
- def generate_token(key, expire=300):
|
|
|
- '''
|
|
|
- @Args:
|
|
|
- key: str (用户给定的key,需要用户保存以便之后验证token,每次产生token时的key 都可以是同一个key)
|
|
|
- expire: int(最大有效时间,单位为s)
|
|
|
- @Return:
|
|
|
- state: str
|
|
|
- '''
|
|
|
- ts_str = str(time.time() + expire)
|
|
|
- token = ts_str + ':' + key
|
|
|
- b64_token = base64.urlsafe_b64encode(token.encode("utf-8"))
|
|
|
- return b64_token.decode("utf-8")
|
|
|
-
|
|
|
-
|
|
|
- # 解密token
|
|
|
- def get_certify_token(token):
|
|
|
- '''
|
|
|
- @Args:
|
|
|
- key: str
|
|
|
- token: str
|
|
|
- @Returns:
|
|
|
- boolean
|
|
|
- '''
|
|
|
- token_str = base64.urlsafe_b64decode(token).decode('utf-8')
|
|
|
- token_list = token_str.split(':')
|
|
|
- if len(token_list) != 2:
|
|
|
- return '长度不对'
|
|
|
- known_sha1_tsstr = token_list[1]
|
|
|
- return known_sha1_tsstr
|
|
|
-
|
|
|
- # 验证token
|
|
|
- def certify_token(key, token):
|
|
|
- '''
|
|
|
- @Args:
|
|
|
- key: str
|
|
|
- token: str
|
|
|
- @Returns:
|
|
|
- boolean
|
|
|
- '''
|
|
|
- token_str = base64.urlsafe_b64decode(token).decode('utf-8')
|
|
|
- token_list = token_str.split(':')
|
|
|
- if len(token_list) != 2:
|
|
|
- return False
|
|
|
- ts_str = token_list[0]
|
|
|
- print (float(ts_str))
|
|
|
- print (time.time())
|
|
|
- print (float(ts_str) < time.time())
|
|
|
- if float(ts_str) < time.time():
|
|
|
- # token expired
|
|
|
- return False
|
|
|
-
|
|
|
- known_sha1_tsstr = token_list[1]
|
|
|
- print (66666666666666)
|
|
|
- print (known_sha1_tsstr != key)
|
|
|
- if known_sha1_tsstr != key:
|
|
|
- # token certification failed
|
|
|
- return False
|
|
|
- # token certification success
|
|
|
- return True
|
|
|
-
|
|
|
- #
|
|
|
- # key = "xiaojingjing"
|
|
|
- # print("key:", key)
|
|
|
- # user_token = generate_token(key=key)
|
|
|
- #
|
|
|
- # print("加密后:", user_token)
|
|
|
- # user_de = certify_token(key=key, token=user_token)
|
|
|
- # print("验证结果:", user_de)
|
|
|
- #
|
|
|
- # key = "xiaoqingqing"
|
|
|
- # user_de = certify_token(key=key, token=user_token)
|
|
|
- # print("验证结果:",user_de)
|