跳转到主要内容

Python中的JOSE实现

项目描述

Python中的JOSE实现

PyPI Github Actions CI Status Coverage Status Docs Code style: black

文档可在 ReadTheDocs 上找到。

JavaScript对象签名加密(JOSE)技术——JSON Web签名(JWS)、JSON Web加密(JWE)、JSON Web密钥(JWK)和JSON Web算法(JWA)——可以共同用于使用多种算法加密和/或签名内容。虽然所有可能的排列组合非常庞大,可能对一些人来说有些令人望而生畏,但预计大多数应用程序只需使用一小部分算法来满足其需求。

安装

$ pip install python-jose[cryptography]

加密后端

截至3.3.0版本,python-jose实现了三个不同的加密后端。在安装python-jose时,必须选择后端作为附加选项。如果您未选择后端,则将安装native-python后端。

除非另有说明,所有后端都支持所有操作。

由于setuptools的复杂性,native-python后端始终会安装,即使您在安装时选择了不同的后端。我们建议您在生产环境中删除不必要的依赖项。

  1. cryptography

    • 此后端使用pyca/cryptography进行所有加密操作。这是推荐的后端,如果存在其他后端,则默认选择。

    • 安装:pip install python-jose[cryptography]

    • 未使用的依赖项

      • rsa

      • ecdsa

      • pyasn1

  2. pycryptodome

    • 此后端使用pycryptodome进行所有加密操作。

    • 安装:pip install python-jose[pycryptodome]

    • 未使用的依赖项

      • rsa

  3. native-python

    • 此后端使用python-rsapython-ecdsa进行所有加密操作。此后端始终会安装,但如果安装了其他后端,则其他后端将具有优先权。

    • 安装:pip install python-jose

用法

>>> from jose import jwt
>>> token = jwt.encode({'key': 'value'}, 'secret', algorithm='HS256')
u'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ2YWx1ZSJ9.FG-8UppwHaFp1LgRYQQeS6EDQF7_6-bMFegNucHjmWg'

>>> jwt.decode(token, 'secret', algorithms=['HS256'])
{u'key': u'value'}

感谢

此库最初大量基于PyJWT团队的成果。

项目详情


下载文件

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

源代码发行版

python-jose-3.3.0.tar.gz (129.1 kB 查看哈希值)

上传时间: 源代码

构建发行版

python_jose-3.3.0-py2.py3-none-any.whl (33.5 kB 查看哈希值)

上传时间: Python 2 Python 3

支持者