Pyjwt的RSA帮助程序

pyjwt-rsa的Python项目详细描述


使用rsa的jwt令牌的帮助程序。

>>>fromjwt_rsa.tokenimportJWT>>>fromjwt_rsa.rsaimportgenerate_rsa>>>>>>bits=2048>>>>>>private_key,public_key=generate_rsa(bits)>>>>>>jwt=JWT(private_key,public_key)>>>>>>token=jwt.encode(foo='bar')>>>result=jwt.decode(token)>>>result{'foo':'bar','exp':1525941819.638339,'nbf':1523349799.638342}>>># Expired token>>>token=jwt.encode(foo='bar',expired=-1)>>>jwt.decode(token)Traceback(mostrecentcalllast):...jwt.exceptions.ExpiredSignatureError:Signaturehasexpired>>># No verify token signature and expiration>>>jwt.decode(token,verify=False){'foo':'bar','exp':-1,'nbf':1523350046.935803}

命令行实用程序

模块提供以下实用程序

jwt rsa keygen

创建新密钥对:

$ jwt-rsa-keygen -h                                                                                                                                                                                              ±8 ?3 master
usage: jwt-rsa-keygen [-h] [-b BITS] [-P]

optional arguments:
  -h, --help            show this help message and exit
  -b BITS, --bits BITS
  -P, --pem

默认情况下,此实用程序返回json序列化密钥对:

$ jwt-rsa-keygen                                                                                                                                                                                                 ±8 ?3 master
{
   "private": "MIIEvgIBADANBg......h3MBsSzx",
   "public": "MIIBCgKCAQEAxUU......5niBEjAB"
}

添加参数-p以PEM格式返回:

$ jwt-rsa-keygen -P                                                                                                                                                                                              ±8 ?3 master
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDeiI5V/O/Mbff
...
LGQgWf5ch0t1+Rh3tjIuuSc=
-----END PRIVATE KEY-----

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAw3oiOVfzvzG331nAL5hGHbblcCaV3pbfoCiFRgwpNPf7snIJtw97
...
3k2mMT1z6NFO6e6LMxg2zrqs3zgqwx5/9wIDAQAB
-----END RSA PUBLIC KEY-----

JWT RSA验证

验证JSON序列化密钥对:

$ jwt-rsa-keygen | jwt-rsa-verify                                                                                                                                                                                ±8 ?3 master
INFO:root:Awaiting JSON on stdin...
INFO:root:Signing OK
INFO:root:Verifying OK

或者当密钥对无效或不匹配时失败:

$ jwt-rsa-keygen | sed 's/M/j/' | jwt-rsa-verify                                                                                                                                                                 ±8 ?3 master
INFO:root:Awaiting JSON on stdin...
Traceback (most recent call last):
  ...
ValueError: Could not deserialize key data.

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

推荐PyPI第三方库


热门话题
java IntelliJ找不到依赖项选项卡   java向字符串数组string[]添加元素并在Junit中测试结果   如何在eclipse中获取活动java项目的名称   如何使用java在mysql中插入时间   java ArrayList更新了插入一行,但Jtable仍然没有刷新   如何在JavaSwing中命名坐标(点)   java Matcher/模式不打印   java错误地设置了arraylist   使用UsernamePasswordCredential提供程序的java列表Azure AD   java在HTTP请求中设置UTC时间   未加载事件:jquery完整日历Java集成   java Maven插件依赖项无法从内部repo解析依赖项   Maven更新重置Java版本   java如何向中添加图片。带有Apache POI XWPF的docx,但不指定其大小   Java最大函数递归