一篇文章带你分清楚JWT,JWS与JWE

一篇文章带你分清楚JWT,JWS与JWE,第1张

随着移动互联网的兴起,传统基于session/cookie的web网站认证方式转变为了基于OAuth2等开放授权协议的单念没点登录模式(SSO),相应的基于服务器session+浏览器cookie的Auth手段也发生了转变,Json Web Token出厅高态现成为了当前的热门的Token Auth机制。

JSON Web Token(JWT)是一个非常扮源轻巧的规范。这个规范允许我们使用JWT在两个组织之间传递安全可靠的信息。

现在网上大多数介绍JWT的文章实际介绍的都是JWS(JSON Web Signature),也往往导致了人们对于JWT的误解,但是JWT并不等于JWS,JWS只是JWT的一种实现,除了JWS外,JWE(JSON Web Encryption)也是JWT的一种实现。

下面就来详细介绍一下JWT与JWE的两种实现方式:

JSON Web Signature是一个有着简单的统一表达形式的字符串

头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。

JSON内容要经Base64 编码生成字符串成为Header。

payload的五个字段都是由JWT的标准所定义的。

后面的信息可以按需补充。

JSON内容要经Base64 编码生成字符串成为PayLoad。

这个部分header与payload通过header中声明的加密方式,使用密钥secret进行加密,生成签名。

JWS的主要目的是保证了数据在传输过程中不被修改,验证数据的完整性。但由于仅采用Base64对消息内容编码,因此不保证数据的不可泄露性。所以不适合用于传输敏感数据。

相对于JWS,JWE则同时保证了安全性与数据完整性。

JWE由五部分组成:

具体生成步骤为:

可见,JWE的计算过程相对繁琐,不够轻量级,因此适合与数据传输而非token认证,但该协议也足够安全可靠,用简短字符串描述了传输内容,兼顾数据的安全性与完整性。

1 tomcat架设出来的就是真正的服务器 没有虚拟一说。网络银掘上其他的公用webservice应该会提供给使用者接口规则。知道了规则自然能够自定客户端代码。

2 jws 与wsdl是webservice两种部署方式。前一种实际上就是webservice服务的java代码,直接将后缀名修改放在axis的service文件夹下的部署方式。后一种是通过服务器wsdd配置所部署的webservice。

3 这个不太清楚。不是搞手机编程的。猜枝核测如果传输过程中为2进制编码的话,接收到数据也会自动反编译。总之应用开发者应该不用关心信号传输过程中的编码问题。

4 webservice主要用于不同系统之间的猛搏掘数据传输,以实现SOA架构体系。本地服务之间的相互调用,internet中的远程调用都是可以通过它实现的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12168627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存