admin 管理员组

文章数量: 887021

JJWT:JWS, JWE, JWK, JWA, JWT

JWS, JWE, JWK, JWA, JWT

JWS:JSON Web Signature,Digital signature/HMAC specification(签名)

JWE:JSON Web Encryption,Encryption specification(加密)

JWK:JSON Web Key,Public key specification

JWA:JSON Web Algorithms,Algorithms and identifiers specification(算法)

JWT:JSON Web Token

 

 

什么是JSON Web Token

JWT是一种在两方之间传输信息的方法。
在JWT的主体中编码的信息被称为claims。JWT的扩展形式是JSON格式,因此每个claim都是JSON对象中的一个键。
JWTs可以加密签名(使它成为JWS)或加密(使它成为JWE)。
这为JWTs增强了可验证性。例如,接收者可以确定JWT没有通过验证签名来篡改。

JWT的组成

  • Header: 标题包含了令牌的元数据,并且在最小包含签名和/或加密算法的类型
  • Claims: Claims包含您想要签署的任何信息
  • JSON Web Signature (JWS): 在header中指定的使用该算法的数字签名和声明

例:

Header:
{"alg": "HS256","typ": "JWT"
}
Claims:
{"sub": "1234567890","name": "John Doe","admin": true
}
Signature:
base64UrlEncode(Header) + "." + base64UrlEncode(Claims)

在这种情况下,我们得到的信息是使用sha - 256算法的HMAC来签署JWT。而且,body有一个claim name与value John Doe  等信息。

 

所生成JWT的结果是有三个部分的字符串,每个部分由"."分隔

例如:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJKb2UifQ.ipevRNuRP6HflG8cFKnmUPtypruRC4fb1DWtoLL62SY

 

 

JJWT

JJWT是一个提供端到端的JWT创建和验证的Java库。永远免费和开源(Apache License,版本2.0),JJWT很容易使用和理解。它被设计成一个以建筑为中心的流畅界面,隐藏了它的大部分复杂性。

  • JJWT的目标是最容易使用和理解用于在JVM上创建和验证JSON Web令牌(JWTs)的库。
  • JJWT是基于JWT、JWS、JWE、JWK和JWA RFC规范的Java实现。
  • JJWT还添加了一些不属于规范的便利扩展,比如JWT压缩和索赔强制。

 

 

 

 

 

本文标签: JJWTJWS JWE JWK JWA jwt