JWT 加解密
提示:我们不记录token,所有验证和调试都在客户端上进行!
JWT 简介
1、JWT 是 JSON Web Tokens 的缩写,是目前最流行的跨域认证解决方案,是一个开放式标准(RFC 7519),用于在各方之间以JSON对象安全传输信息。
2、JWT 包含了认证信息,请妥善保管!我们不记录和存储你的JWT信息,所有验证和调试都在客户端上进行。
3、一个JWT实际上就是一个字符串,它由三部分组成,HEADER(头部)、PAYLOAD(数据体)和 SIGNATURE(签名)。
4、Payload 用来存放实际需要传递的数据,JWT 规定的7个官方字段,供选用:
- iss (Issuer):签发者
- sub (Subject):主题
- aud (Audience):接收者
- exp (Expiration time):过期时间
- nbf (Not Before):生效时间
- iat (Issued At):签发时间
- jti (JWT ID):编号
JWT 签名算法
签名算法。如:HS256、HS384、HS512、RS256、RS384、RS512、ES256、ES384、ES512、PS256、PS384。
HS开头的是HMAC-SHAX。是利用HAMC对SHA摘要算法进行加盐(秘钥)哈希。
其他三个均是利用非对称算法加密进行签名,再对结果进行摘要得出的结果。
RFC 7518 - JSON Web Algorithms (JWA) 中给出的 JWT 算法列表如下:
+--------------+-------------------------------+--------------------+ | "alg" Param | Digital Signature or MAC | Implementation | | Value | Algorithm | Requirements | +--------------+-------------------------------+--------------------+ | HS256 | HMAC using SHA-256 | Required | | HS384 | HMAC using SHA-384 | Optional | | HS512 | HMAC using SHA-512 | Optional | | RS256 | RSASSA-PKCS1-v1_5 using | Recommended | | | SHA-256 | | | RS384 | RSASSA-PKCS1-v1_5 using | Optional | | | SHA-384 | | | RS512 | RSASSA-PKCS1-v1_5 using | Optional | | | SHA-512 | | | ES256 | ECDSA using P-256 and SHA-256 | Recommended+ | | ES384 | ECDSA using P-384 and SHA-384 | Optional | | ES512 | ECDSA using P-521 and SHA-512 | Optional | | PS256 | RSASSA-PSS using SHA-256 and | Optional | | | MGF1 with SHA-256 | | | PS384 | RSASSA-PSS using SHA-384 and | Optional | | | MGF1 with SHA-384 | | | PS512 | RSASSA-PSS using SHA-512 and | Optional | | | MGF1 with SHA-512 | | | none | No digital signature or MAC | Optional | | | performed | | +--------------+-------------------------------+--------------------+ The use of "+" in the Implementation Requirements column indicates that the requirement strength is likely to be increased in a future version of the specification.