JWT解码器
解码JSON Web Token (JWT)以查看其头部、载荷和签名。用于调试和检查用于身份验证和授权的JWT令牌。您的JWT内容不会被保存在任何地方。
载荷 (Claims):
头部 (签名算法和令牌类型):
签名:
签名以Base64URL编码数据显示。此工具不执行签名验证。
关于JSON Web Tokens的更多信息
JWT格式
JSON Web Token (JWT) 是一种紧凑的、URL安全的方式,用于表示在双方之间传输的声明。它由三个Base64URL编码的部分组成,用点分隔:header.payload.signature。头部通常包含令牌类型(JWT)和签名算法。载荷包含声明——关于实体(通常是用户)的陈述和附加元数据。签名用于验证消息在传输过程中没有被篡改。
JOSE(JSON对象签名和加密)
JWT是更大的JOSE(JSON Object Signing and Encryption)框架的一部分,该框架提供了一种标准化的方式来保护基于JSON的数据。JOSE包括几个相关规范:JWS(JSON Web Signature)用于签名令牌,JWE(JSON Web Encryption)用于加密令牌,JWK(JSON Web Key)用于表示加密密钥,JWA(JSON Web Algorithms)用于指定加密算法。
JSON Web Signature (JWS)
您遇到的大多数JWT都是JWS令牌——它们是签名的但未加密。这意味着任何人都可以通过Base64URL解码来读取载荷,但他们无法在不使签名失效的情况下修改它。JWS提供完整性和真实性:您可以验证令牌是由受信任的一方发出的,并且没有被篡改。
签名算法
JWS支持各种加密算法来签名令牌。这些算法分为两类:对称算法(签名和验证使用相同的密钥)和非对称算法(私钥用于签名,公钥用于验证)。
HMAC算法(对称)
HS256、HS384和HS512分别使用HMAC(基于哈希的消息认证码)与SHA-256、SHA-384或SHA-512。这些是对称算法——相同的密钥用于签名和验证令牌。HMAC算法快速简单,但需要安全的密钥分发,因为双方都需要相同的密钥。
RSA算法(非对称)
RS256、RS384和RS512使用RSASSA-PKCS1-v1_5与SHA-256、SHA-384或SHA-512。PS256、PS384和PS512使用RSASSA-PSS(概率签名方案)。RSA算法使用私钥签名和公钥验证。这允许公开共享验证密钥而不损害安全性——非常适合需要多个服务验证令牌的分布式系统。
椭圆曲线算法(非对称)
ES256、ES384和ES512分别使用ECDSA(椭圆曲线数字签名算法)与P-256、P-384或P-521曲线。EC算法提供与RSA相同的安全性,但密钥更小,从而产生更小的签名和更快的操作。ES256因其效率而在现代应用中越来越受欢迎。
JSON Web Encryption (JWE)
JWS提供签名令牌,而JWE提供加密令牌,其中载荷是保密的。JWE令牌有五个部分而不是三个:头部、加密密钥、初始化向量、密文和认证标签。JWE支持各种加密算法,包括AES-GCM和带HMAC的AES-CBC。请注意,此解码器仅处理JWS令牌;JWE令牌需要使用适当的密钥进行解密。
RFC规范
JWT和JOSE标准在多个IETF RFC中定义: