jwt的解密和RSA签名验证

本文深入解析JWT(JSON Web Token)的RSA签名与验签过程,通过Python代码演示如何使用RSA公钥与私钥进行JWT的生成与验证,揭示JWT防篡改而非防泄密的特性。

在读本文之前需要了解的知识点:

PKI体系:Public Key Infrastructure

公钥:用来加密和验签(验签的过程其实就是用公钥解密出签名内容,与原签名内容对比是否一致)

私钥:用来解密和签名(签名的过程其实就是用私钥加密签名内容,然后将签名与签名内容一同发给对方)

关于加密与签名的区别,请参考我的另外一篇博文:接口安全:谈谈加密与签名的区别_签名和加密的区别_boweiqiang的博客-优快云博客

为了 理解jwt的验签过程,自己写的测试验证代码如下:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File : jwt_test.py
@Contact : boweiqiang@163.com
@MTime : 2020-04-26 11:32
@Author: boweiqiang
@Version: 1.0
@Desciption:
jwt的签名算法JWT 的签名算法有三种:
1.对称加密HMAC【哈希消息验证码】  HS256/HS384/HS512
2.非对称加密RSASSA【RSA签名算法】RS256/RS384/RS512
3.ECDSA【椭圆曲线数据签名算法】 ES256/ES384/ES512,RSA签名
这里实验的是RSA签名和验签的过程
注意:本文中用的jwt是:https://pypi.org/project/jwt/,安装方法为:pip3 install jwt
注意与python-jwt区别:https://pypi.org/project/python-jwt/,安装方法为:pip install python_jwt
'''
import time

import base64
from Crypto.PublicKey import RSA
fr
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值