以下术语与JWT调试器增强版的使用密切相关,理解这些概念将帮助您更好地调试和验证JWT Token。
JWT (JSON Web Token)
一种开放标准(RFC 7519),用于在各方之间安全地传输信息。JWT由三部分组成:Header(头部)、Payload(负载)和Signature(签名),各部分通过点号分隔。JWT广泛应用于身份认证、授权和信息交换场景。
与工具关系:本工具的核心功能就是解码和验证JWT,粘贴Token后即可看到三部分的详细内容。
Header(头部)
JWT的第一部分,包含令牌的元数据信息。通常包含两个字段:"alg"(algorithm)表示签名算法,"typ"(type)表示令牌类型。Header经过Base64URL编码后构成JWT的第一段。
与工具关系:工具会自动解码Header并高亮显示算法类型,帮助您确定使用哪种密钥进行验证。
Payload(负载)
JWT的第二部分,包含Claims(声明)信息。Claims是关于实体(通常是用户)和附加元数据的断言。分为注册Claims(如exp、iat)、公开Claims和私有Claims三类。
与工具关系:工具会以表格形式清晰展示所有Claims,并将时间戳转换为可读格式,方便分析用户信息和权限。
Signature(签名)
JWT的第三部分,用于验证Token的完整性和真实性。签名通过对编码后的Header、编码后的Payload、密钥以及Header中指定的算法进行计算生成。任何对JWT内容的篡改都会导致签名验证失败。
与工具关系:输入正确的密钥后,工具会重新计算签名并与原签名对比,确认Token是否被篡改。
HS256 (HMAC-SHA256)
使用HMAC算法和SHA-256哈希的对称加密签名方式。发送方和接收方共享同一个密钥(Secret),既能验证Token完整性,也能验证发送方身份。适用于同一服务内部的Token签发。
与工具关系:验证HS256 Token时,需要输入与签发方相同的Secret密钥。
RS256 (RSA-SHA256)
使用RSA算法和SHA-256哈希的非对称加密签名方式。签发方使用私钥签名,验证方使用公钥验证。私钥保密,公钥可公开分发。适用于跨服务、跨组织的Token验证场景。
与工具关系:验证RS256 Token时,需要输入RSA公钥(以-----BEGIN PUBLIC KEY-----开头)。
ES256 (ECDSA-SHA256)
使用椭圆曲线数字签名算法(ECDSA)和SHA-256哈希的签名方式。相比RSA,ECDSA在相同安全强度下使用更短的密钥,生成的签名也更小,性能更高。常用于IoT设备和移动端。
与工具关系:验证ES256 Token时,需要输入椭圆曲线公钥(以-----BEGIN PUBLIC KEY-----开头)。
none算法
一种特殊的"签名"方式,表示Token没有签名。这在某些场景下被恶意利用:攻击者修改Header将alg设为none,服务器可能错误地跳过签名验证。这是JWT安全的重大隐患。
与工具关系:工具会检测到none算法并显示安全警告,提醒您检查服务器是否正确处理了这种情况。
exp (Expiration Time)
注册Claim,表示JWT的过期时间。值是Unix时间戳(自1970-01-01 00:00:00 UTC以来的秒数)。Token过期后应被拒绝使用。通常与Refresh Token配合实现Token刷新机制。
与工具关系:工具自动将exp转换为可读时间,并计算剩余有效时间,高亮显示过期状态。
nbf (Not Before)
注册Claim,表示JWT的生效时间(Not Before)。Token在nbf时间之前应被拒绝使用。可用于实现Token的延迟生效或时间窗口控制。
与工具关系:工具显示nbf时间并标注当前Token是否已生效,帮助排查"Token未生效"的错误。
iat (Issued At)
注册Claim,表示JWT的签发时间(Issued At)。记录Token创建的时间点,可用于审计、日志分析和Token有效期计算。与exp结合可得出Token的总有效期。
与工具关系:工具显示签发时间并计算Token已使用时长,帮助分析Token使用情况。
Base64URL编码
JWT使用的编码方式,是Base64编码的URL安全变体。将"+"替换为"-","/"替换为"_",并移除末尾的"="填充符。这样编码后的字符串可以直接在URL中传输,不会引起解析问题。
与工具关系:工具自动处理Base64URL解码,您看到的是解码后的原始JSON内容。
UD5工具箱