本工具支持通过 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