在线JWT Token生成

本工具支持通过 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:要创建签名部分,您必须获取编码的标头、编码的有效负载、密钥和标头中指定的算法,并对其进行签名。

更多关于 JSON WEb Token 的介绍

JWT

详细介绍

RFC 7519