点击上方“Java精选”,选择“设为星标”
别问别人为什么,多问自己凭什么!
下方有惊喜,留言必回,有问必答!
每一天进步一点点,是成功的开始...
JWT概念
JWT , 全写JSON Web Token, 是开放的行业标准RFC7591,用来实现端到端安全验证.
简单来说, 就是通过一些算法对加密字符串和JSON对象之间进行加解密。
JWT加密JSON,保存在客户端,不需要在服务端保存会话信息,可以应用在前后端分离的用户验证上,后端对前端输入的用户信息进行加密产生一个令牌字符串, 前端再次请求时附加此字符串,后端再使用算法解密。
JWT流程:
JWT字符串:一段加密的JSON字符串。
包含了三类信息
Header头部:Token类型和加密算法。加密算法常见的有MD5、SHA、HMAC( Hash Message Authentication Code)。
PayLoad负载:存放有效信息,包括
标准的声明,类似开发语言总的关键字。包括
iss(Issuser) - 签发者
sub Subject 面向主体
aud Audience 接收方
exp Expiration time 过期时间戳
nbf Not Before, 开始生效时间戳
iat(Issued at) 签发时间
jti(JWT ID): 唯一标识
公共的声明:一般添加业务相关的必要信息,因为可解密,不建议敏感信息。
私有的声明:提供者和消费者共同定义的声明,Base64对称解密,不建议敏感信息
Signature签证
签证信息包括三部分:
Base64加密的header
Base64加密的payload
secret-密钥 使用header中声明的加密算法对Header和payload的加密连接字符串进行加盐secret组合加密。密钥保存在服务端,服务端根据密钥进行解密验证。
JWT与开发语言
JWT只是一个标准可以通过不过的开发语言实现,包括Java,.NET, Python,Node Js, JavaScript,Perl, Ruby,Go等。同一种语言,不同的开发者提供了多种实现库,以Java语言为例有java-jwt、?jose4j、nimbus-jose-jwt、jjwt
JWT官网
https://jwt.io/
这个网站提供了在线的基于不同算法的字符串和JSON对象的转换工具,同时也收集了不同语言的多种实现库。
java-jwt是Java语言中推荐的JWT实现库,使用Maven导入如下:
com.auth0
java-jwt
3.8.3
产生加密Token String token = JWT.create() 解密Token获取负载信息并验证Token是否有效
.withExpiresAt(newDate(System.currentTimeMillis())) //设置过期时间
.withAudience("user1") //设置接受方信息,一般时登录用户
.sign(Algorithm.HMAC256("111111")); //使用HMAC算法,111111作为密钥加密String userId = JWT.decode(token).getAudience().get(0);
Assertions.assertEquals("user1", userId);
JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256("111111")).build();
jwtVerifier.verify(token);
版权声明:本文为CSDN博主「oscar999」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 https://blog.csdn.net/oscar999/article/details/102728303
公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!
------ THE END ------
精品资料,超赞福利!
3000+ 道面试题在线刷,最新、最全 Java 面试题!
期往精选 点击标题可跳转
技术交流群!
最近有很多人问,有没有读者交流群!想知道如何加入?方式很简单,兴趣相投的朋友,只需要点击下方卡片,回复“加群”,即可无套路入交流群!
文章有帮助的话,在看,转发吧!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.