使用浏览器API实现,Token 不会被传输到云端。
- 基础参数
- 标准载荷
- 数据
- 密钥
- 全部信息
相关工具
在线JWT(JSON Web Token)生成工具,支持使用多种算法生成JWT Token,支持设置标准载荷和自定义数据。还支持生成加密的JWT Token(Encrypt JWT)。
- 本工具支持通过 JWS(JSON Web Signature) 和 JWE(JSON Web Encryption) 生成 JWT(JSON Web Token)。 本工具同时支持解析 JWT ,解析时需要输入对应的密钥。
-
基础参数:设置 JWT 编码解码的基础参数。
- 类别:选择编码解码的对象是 JWT (JWS),还是 Encrypt JWT (JWE)。
- 算法(alg):选择 JWT 编码解码使用的签名算法。 JWS 支持 HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, EdDSA 算法。 JWE 支持 A128KW, A192KW, A256KW, A128GCMKW, A192GCMKW, A256GCMKW, dir, RSA-OAEP, RSA-OAEP-256, RSA-OAEP-384, RSA-OAEP-512, PBES2-HS256+A128KW, PBES2-HS384+A192KW, PBES2-HS512+A256KW, ECDH-ES, ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW 算法。
- 加密(enc):选择 JWE 加密算法,支持 A128GCM, A192GCM, A256GCM, A128CBC-HS256, A192CBC-HS384, A256CBC-HS512 算法。
- 类型(typ):设置或者显示 JWT typ header 值。
-
标准载荷:设置或者显示 JWT 标准载荷。
- 签发人(iss):Issuer,JWT 的颁发者,可选,值为字符串或者 URI 。
- 过期时间(exp):Expiration Time,当前 JWT 的过期时间,可选。值为 Unix 时间戳,单位为秒。 本工具将时间戳转换为时间显示。
- 主题(sub):Subject,当前 JWT 的主题或者主体,可选,值为字符串或者 URI 。
- Audience(aud):Audience,当前 JWT 的目标受众或者使用范围,可选,值为字符串或者字符串数组。
- 生效时间(nbf):Not Before,当前 JWT 的生效时间,可选。值为 Unix 时间戳,单位为秒。 本工具将时间戳转换为时间显示。
- 签发时间(iat):Issued At,当前 JWT 的颁发时间,可选。值为 Unix 时间戳,单位为秒。 本工具将时间戳转换为时间显示。
- 编号(jti):JWT ID,当前 JWT 的唯一标识,可选,值为字符串。
- 数据:JWT 的自定义数据(载荷)。
- 密钥:JWT 编码解码使用的密钥,不同的算法要求的密钥格式不同。 本工具支持 String, Hex, Base64, PKCS8_PEM, SPKI_PEM, X.509, JSON Web Key(JWK) 格式的密钥。
- JSON Web Token:点击生成,此处显示生成的 JWT 结果。 点击解码时,需要在此处输入 JWT 。
- 生成:使用填写的参数,生成一个 JWT 。
- 解码:解析一个 JWT,并显示其中包含的数据。解码仅需要使用 算法(alg)、密钥、JSON Web Token 参数。
什么是JSON Web Token(JWT)?
JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输JSON对象信息。 此信息可以被验证和信任,因为它是数字签名的。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。
虽然JWT可以被加密,以提供双方之间的保密性,但我们将重点关注签名令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌可以向其他方隐藏这些声明。 当使用公钥/私钥对对令牌进行签名时,签名还证明只有持有私钥的一方才是签名方。
什么情况下应该使用JSON Web Token?
以下场景使用 JWT 将非常有用:
- 授权:这是使用JWT最常见的场景。一旦用户登录,每个后续请求都将包含JWT,允许用户访问该令牌所允许的路由、服务和资源。 单点登录是目前广泛使用JWT的一项功能,因为它的开销很小,并且能够在不同的域中轻松使用。
- 交换信息:JSON Web Token是在各方之间安全传输信息的好方法。 例如,由于JWT可以使用公钥/私钥对进行签名,因此您可以确保发件人是他们所说的人。 此外,由于签名是使用标头和有效负载计算的,因此您还可以验证内容是否未被篡改。
JSON Web Token 的结构
JWT 由 Header,Payload,Signature 三个部分组成,这三个部分使用.连接在一起。 完整形式为:xxx.yyy.zzz。
- Header:通常由两部分组成:令牌的类型(JWT)和使用的签名算法(如HMAC SHA256或RSA)。
- Payload:令牌的第二部分是有效载荷,其中包含声明。声明是关于实体(通常是用户)和其他数据的声明。
- Signature:要创建签名部分,您必须获取编码的标头、编码的有效负载、密钥和标头中指定的算法,并对其进行签名。