123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- # -*- 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)
|