Python中的JSON Web Token实现
项目描述
Python实现[JSON Web Token草案01](http://self-issued.info/docs/draft-jones-json-web-token-01.html).
这是Mozilla对[PyJWT](http://pypi.python.org/pypi/PyJWT)的分支,增加了RSA算法,修复了一些时序攻击,并做了一些其他调整。它在[webpay](https://github.com/mozilla/webpay)等项目中使用。
安装
使用[pip](http://www.pip-installer.org/)或类似工具安装模块
pip install PyJWT-mozilla
此安装步骤还会安装/编译 [M2Crypto](http://pypi.python.org/pypi/M2Crypto),因此您需要 swig。您可以使用包管理器获取它,例如
brew install swig
或者您可能可以使用类似以下命令找到 M2Crypto 的二进制包
sudo apt-get install python-m2crypto
用法
import jwt jwt.encode({"some": "payload"}, "secret")
请注意,生成的 JWT 不会加密,但可以使用密钥进行验证。
jwt.decode("someJWTstring", "secret")
如果密钥错误,将引发一个 jwt.DecodeError,告诉您错误信息。您仍然可以通过将 verify 参数设置为 false 来获取负载。
jwt.decode("someJWTstring", verify=False)
算法
JWT 规范支持多种加密签名算法。此库目前支持
HS256 - 使用 SHA-256 哈希算法的 HMAC(默认)
HS384 - 使用 SHA-384 哈希算法的 HMAC
HS512 - 使用 SHA-512 哈希算法的 HMAC
RS256 - 使用 SHA-256 哈希算法的 RSA
RS384 - 使用 SHA-384 哈希算法的 RSA
RS512 - 使用 SHA-584 哈希算法的 RSA
通过在 encode 中设置算法来更改算法
jwt.encode({"some": "payload"}, "secret", "HS512")
测试
通过在根目录下输入此命令将项目安装到 [virtualenv](http://pypi.python.org/pypi/virtualenv)(或其他位置)
python setup.py develop
按此方式运行测试
python tests/test_jwt.py
许可
MIT
项目详情
PyJWT-mozilla-0.1.5.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 41e8e304e1ab3e38dcea3a17429ecc908329f21e388631d730fd3d6a08de0ee6 |
|
MD5 | 340069226a190dd98b8dcca1762e7611 |
|
BLAKE2b-256 | acc11d5342c589897cab9f1bc793d0849834a55b771a868a28268718faf745b6 |