平台无关的python安全令牌(paseto)

paseto的Python项目详细描述


PyPIPyPI - Licensehttps://travis-ci.org/rlittlefield/pypaseto.svg?branch=master

这是一个非正式的 PASETO: Platform-Agnostic Security Tokens对于python。

这还没有准备好生产,使用风险自负。

https://github.com/JimDabell/pypast分叉, 它最初是为帕塞托早期设计的 过去的。

安装

pip install paseto

用法

这仍处于早期发展阶段。它没有经过安全审查 尚未审核,因此请注意,它预计不会在 生产系统。

它目前只支持“本地”令牌类型v2的基本加密/解密。 v1没有v2好,但是我们会接受一个功能性的,干净的,安全的拉动 如果你感兴趣的话,可以申请v1。

要创建/解析paseto令牌,请使用create/parse函数。这些遗嘱 自动为您处理json负载的编码/解码,并验证 索赔(目前只是“exp”过期注册索赔)。

importpasetoimportsecretsmy_key=secrets.token_bytes(32)# > b'M\xd48b\xe2\x9f\x1e\x01[T\xeaA1{Y\xd1y\xfdx\xb5\xb7\xbedi\xa3\x96!`\x88\xc2n\xaf'# create a paseto token that expires in 5 minutes (300 seconds)token=paseto.create(key=my_key,purpose='local',claims={'my claims':[1,2,3]},exp_seconds=300)# > b'v2.local.g7qPkRXfUVSxx3jDw6qbAVDvehtz_mwawYsCd5IQ7VmxuRFIHxY9djMaR8M7LWvCSvCZu8NUk-Ta8zFC5MpUXldBCKq8NtCG31wsoKv8zCKwDs9LuWy4NX3Te6rvlnjDMcI_Iw'parsed=paseto.parse(key=my_key,purpose='local',token=token,)print(parsed['message'])

您还可以生成并验证v2.public令牌,这些令牌已签名但未签名 加密:

importpasetoimportpysodiumpubkey,privkey=pysodium.crypto_sign_keypair()# pubkey > b'\xa7\x0b\x14\xec\x03\x97\x90\x86\x14\x12\xa0x:)\x97\xed\xdf\x81\xc3\xe4\x95\xd7R\xfe\x9bT\xba,\x92\x0c\xb9P'# privkey > b'@\x1fg\x9b\x83b$\xcdJP{\x93\xe8[\xae\x05.\xe9\xcb\x13\xe7`v\xa67\xd6\xb47\x7f\x96\xdf0\xa7\x0b\x14\xec\x03\x97\x90\x86\x14\x12\xa0x:)\x97\xed\xdf\x81\xc3\xe4\x95\xd7R\xfe\x9bT\xba,\x92\x0c\xb9P'token=paseto.create(key=privkey,purpose='public',claims={'my claims':[1,2,3]},exp_seconds=300)# > b'v2.public.eyJteSBjbGFpbXMiOiBbMSwgMiwgM10sICJleHAiOiAiMjAxOC0wMy0xM1QxNDo0MzozNC0wNjowMCJ9vjeSnGkfEk7tkHg5gj07vFo-YYBMTYEuSG00SqQ6iaYMeLMcc9puiOOUsu0buTziYeEmE9Fahtm1pi2PSPZpDA'parsed=paseto.parse(key=pubkey,purpose='public',token=token,)# > {'message': {'my claims': [1, 2, 3], 'exp': '2018-03-13T14:43:34-06:00'}, 'footer': None}print(parsed['message'])

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android上已连接音频输入设备的java列表   java是创建类的新对象还是使用静态方法?   Java:Shift/Rotate对象数组   Java Casting ArrayIterator<Object>   在java中返回布尔值时出错   无法确定文本文件读入程序(java)中的各种元素   Java Swing JToolBar   JAVAlang.IllegalStateException执行Ghost4J(Linux 32对64位)   jvm如何增加ubuntu系统的java堆化?   java CORS策略“AccessControlAllowOrigin”(Anguar 8和Servlet)   使用dagger 2的java视图依赖项注入   单元测试中RxJava的java模拟活动生命周期   arraylist中的Java打印字符串   java返回值显示为0.0。为什么会这样?   java是clientserver应用程序所必需的MVC吗?   ByteToMessageDecoder类中的java内存泄漏   java将大量文档写入firestore   GWT项目中的java TomcatMaven插件。两者之间的区别是什么:org。科德豪斯。魔咒和组织。阿帕奇。公猫maven插件   java swing:向JTree项添加自定义图形按钮