JWT解码器 - 解码JSON Web令牌 在线
即时解码和检查JWT头部、载荷和签名。验证令牌过期时间和声明 — 不发送到服务器,100%客户端处理。
100%客户端 - 您的令牌不会离开此浏览器
JWT令牌
常见问题
什么是JSON Web令牌(JWT)?
JWT(JSON Web令牌)是一个开放标准(RFC 7519),用于在各方之间以JSON对象的形式安全地传输信息。它由三个用点分隔的部分组成:头部(算法和令牌类型)、载荷(声明/数据)和签名(用于验证)。JWT通常用于Web应用程序中的身份验证和授权。
如何使用这个JWT解码器?
只需将您的JWT令牌粘贴到输入框中。工具会自动解码并在单独的选项卡中显示头部、载荷和签名。您可以点击每个选项卡查看解码后的JSON内容。要验证签名,请在验证部分输入您的密钥(用于HMAC)或公钥(用于RSA)。
在这里解码我的JWT安全吗?
是的,这个工具100%在客户端运行。您的JWT令牌永远不会离开您的浏览器 - 所有解码和验证都使用JavaScript在本地进行。不会向任何服务器发送数据。但是,您不应该公开分享包含敏感信息的JWT,因为载荷只是Base64编码的,并未加密。
什么是JWT声明?
声明是关于实体(通常是用户)和附加数据的陈述。标准声明包括:exp(过期时间)、iat(签发时间)、nbf(生效时间)、sub(主题)、iss(签发者)、aud(受众)和jti(JWT ID)。还可以添加自定义声明用于特定于应用程序的数据,如用户角色或权限。
签名验证是如何工作的?
JWT签名确保令牌未被篡改。对于HMAC算法(HS256、HS384、HS512),使用各方共享的密钥创建签名。对于RSA算法(RS256、RS384、RS512),使用非对称密钥对 - 私钥用于签名,公钥用于验证。此工具使用Web Crypto API进行安全验证。
代码示例
// Decode JWT (without verification)
function decodeJWT(token) {
const [headerB64, payloadB64] = token.split('.');
const decodeBase64Url = (str) => {
const base64 = str.replace(/-/g, '+').replace(/_/g, '/');
return JSON.parse(atob(base64));
};
return {
header: decodeBase64Url(headerB64),
payload: decodeBase64Url(payloadB64)
};
}
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
const { header, payload } = decodeJWT(token);
console.log(payload);