跳转到主要内容

适用于Python的平台无关安全令牌

项目描述

python-paseto

适用于Python的平台无关安全令牌

Build Status test-workflow PyPI version Coverage Status Language grade: Python Code style: black

安装

pip install python-paseto

检查安装

python -m paseto

libsodium 是必需的,这会检查它是否已安装在您的系统上。在Ubuntu 20.04上,您可以使用 sudo apt install libsodium23 获取它。

低级API

实现了支持 v2.publicv2.localv4.publicv4.local 消息的 PASETO 版本2和版本4协议。每个协议版本都提供对 encrypt() / decrypt() 和 sign() / verify() 函数的访问。

低级API专注于在 PASETO 协议中直接指定的稳定、高质量、生产就绪的原语。有关协议详情,请参阅 paseto-spec

版本2的示例使用

from paseto.protocol.version2 import encrypt, decrypt

message = b"foo"  # your data
key = b"0" * 32  # encryption key

token = encrypt(message, key)
plain_text = decrypt(token, key)

assert plain_text == message
print(f"token={token}")
print(f"plain_text={plain_text}")
print(f"message={message}")

带有可选的页脚

from paseto.protocol.version2 import encrypt, decrypt

message = b"foo"  # your data
key = b"0" * 32  # encryption key
optional_footer = b"sample_footer"  # authenticated but not encrypted metadata

token = encrypt(message, key, optional_footer)
plain_text = decrypt(token, key, optional_footer)

assert plain_text == message
print(f"token={token}")
print(f"plain_text={plain_text}")
print(f"message={message}")

版本4的示例使用

from paseto.protocol.version4 import create_symmetric_key, decrypt, encrypt

message = b"this is a secret message"  # your data
key = create_symmetric_key()  # encryption key

token = encrypt(message, key)
plain_text = decrypt(token, key)

assert plain_text == message
print(f"token={token}")
print(f"plain_text={plain_text}")
print(f"message={message}")

消息签名

from paseto.protocol.version4 import create_asymmetric_key, sign, verify

message = b"this is a public message"  # your data
public_key, secret_key = create_asymmetric_key()  # signing / verifying keys

token = sign(message, secret_key)
verified_message = verify(token, public_key)

assert verified_message == message
print(f"token={token}")
print(f"verified_message={verified_message}")
print(f"message={message}")

高级API

将来,高级API将为开发者提供对低级API的友好访问,并支持轻松集成到其他项目中。

开发

典型的开发工作流程操作已在 Makefile 中自动化,包括测试、代码质量检查、基准测试和开发环境设置。

贡献

此库正在积极开发和维护。对于任何反馈、问题、评论或您想要请求功能,请提出问题!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

python-paseto-0.5.2.tar.gz (11.2 kB 查看哈希值)

上传时间

构建分发

python_paseto-0.5.2-py3-none-any.whl (13.1 kB 查看哈希值)

上传时间 Python 3

由以下组织支持