`

python对token的有效期校验简单例子

 
阅读更多
# -*- 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
import hmac

#生产token
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")

#验证token
def certify_token(key, token):
    r'''
        @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]
    if float(ts_str) < time.time():
        # token expired
        return False
    known_sha1_tsstr = token_list[1]
    sha1 = hmac.new(key.encode("utf-8"),ts_str.encode('utf-8'),'sha1')
    calc_sha1_tsstr = sha1.hexdigest()
    if calc_sha1_tsstr != known_sha1_tsstr:
        # 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)

 

分享到:
评论

相关推荐

    Python 如何实现Bearer模式的Token验证 Python源码

    Python 如何实现Bearer模式的Token验证 Python源码Python 如何实现Bearer模式的Token验证 Python源码Python 如何实现Bearer模式的Token验证 Python源码Python 如何实现Bearer模式的Token验证 Python源码Python 如何...

    python 产生token及token验证的方法

    今天小编就为大家分享一篇python 产生token及token验证的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    python获取有赞token和有赞接口调用代码示例

    有赞token获取和有赞接口调用代码示例,具体的类没写,只是获取了下token和测试了下python调用有赞接口的方法。有需要的可以下下来看看。

    onenet对接token的python及QuecPython算法

    5. **接收并解析响应**:服务器验证请求后返回一个有效期内的token,Python程序接收到响应后,可以解析出这个token。 6. **使用token**:将得到的token放入后续的HTTP请求头中,以便OneNet识别并允许数据交互。 在...

    python requests接口自动化把登录token保存在文件,实现所有用例登录一次(csdn)————程序.pd.pdf

    在这个例子中,我们假设`login("test")`返回一个包含`glodonM2Token`的字典。 2. **写入token到文件**:创建一个名为`writeToken()`的函数,它首先获取当前脚本的绝对路径,然后创建一个名为`token.yaml`的文件,将...

    SpringBoot框架集成token实现登录校验功能

    SpringBoot框架集成token实现登录校验功能 SpringsBoot框架集成token实现登录校验功能是指在SpringBoot框架中使用token来实现登录校验功能的方法,这种方法可以在移动端和服务器端之间实现安全的身份验证。下面将...

    获取token值的python脚本

    获取token值的python脚本

    Springboot+Shiro+jwt+Redis+Mybatis 有效期内Token刷新方案.zip

    当JWT的有效期即将过期时,可以通过刷新令牌的方式延长其有效期,提高用户体验。 Redis是一个高性能的键值数据库,常用于缓存和会话管理。在这里,Redis用于存储和管理JWT刷新令牌,以便在JWT到期前快速刷新,而...

    某度翻译js逆向解析token实现js文件源码,点击即可获取最新token

    某度翻译js逆向解析token实现js文件源码。某度翻译的翻译链接中需要上传加密token,本文件附带解密token的js...可以使用python调用jsexecute进行解析,或者改写成python代码获取最新token,为后续的爬虫任务做铺垫。

    python爬虫黑科技,主要涉及token参数

    每次发送请求时,只需使用同一个`Session`实例,即可自动附带正确的`token`。 4. **处理动态加载内容**:如果`token`是在异步加载的内容中,可能需要使用像`Selenium`这样的工具,因为它可以等待页面完全加载,包括...

    如何通过Python 获取token操作资源-Yu Tao1

    在使用Python进行Azure资源管理时,获取token是一个关键步骤,因为它是验证客户端权限并允许访问受保护资源的基础。本文将详细讲解如何通过Python获取Azure的token,以便使用Azure的SDK来操作资源。主要分为两种方法...

    C#手写jwtToken生成与校验

    **C#手写JWT Token生成与校验** JWT(JSON Web Tokens)是一种轻量级的身份认证和授权机制,常用于API的身份验证。在C#环境中,我们可以手动实现JWT的生成和验证过程,以便理解其工作原理和提升安全性。本文将详细...

    对python的unittest架构公共参数token提取方法详解

    在Python的测试框架unittest中,有时我们需要处理一些公共参数,比如在API测试中常见的token。token通常用于验证请求的合法性,且经常变化,这给维护测试用例带来了不便。本篇文章将详细讲解如何在unittest中提取并...

    基于acess_token和refresh_token实现token续签

    `access_token`是用于访问受保护资源的凭证,通常具有较短的有效期,例如30分钟或1小时。这确保了即使令牌被盗,攻击者也仅有有限的时间窗口可以滥用。而`refresh_token`则是一个长期有效的令牌,用于获取新的`...

    前端token值时效性问题怎么解决?

    因为token值每次都是动态获取的且是有有效期的,token值设置有效期是为了防止token泄露 解决办法:在每次发送带token的请求接口前,先在请求拦截器中获取token,然后在响应拦截器中将刷新获取到的token值更新到需要...

    Spring Boot + Security + JWT 实现接口统一 Token 校验

    Spring Boot + Security + JWT 实现接口统一 Token 校验,详见:https://blog.csdn.net/z1353095373/article/details/122859572

    Spring Cloud Feign统一设置验证token实现方法解析

    Spring Cloud Feign统一设置验证token实现方法解析 Spring Cloud Feign是一个基于Netflix的Feign组件,提供了一个简洁的方式来构建RESTful风格的微服务接口。Feign组件提供了一个统一的接口调用方式,使得微服务...

    微信企业号 开发平台token验证

    3. **校验请求**:你的服务器收到请求后,需要按照一定的算法(通常是将Token、Nonce和Timestamp按特定顺序拼接,然后进行SHA1哈希运算)生成一个Signature。然后将这个Signature与请求中带的Signature进行对比。 4...

    Python库 | token_utils-0.0.10-py3-none-any.whl

    `token_utils-0.0.10-py3-none-any.whl` 是一个Python库的发行文件,主要用于处理与令牌(token)相关的操作。在Python编程中,库(library)是一组预先编写好的函数和模块,可以被其他程序引用,以增加代码的可重用...

Global site tag (gtag.js) - Google Analytics