JWT & JWE & JWE & JWA

Q & A

Q1: 什么是 JWT?
A1: JSON Web Token, JWT 是一个在空间有限的环境下传输声明(claims)的标准。JWT 本质上是 Token,用于验证用户身份、权限等信息。

Q2: 什么是 JWS, JWE?
A2: JWS(JSON Web Signatures)、JWE(JSON Web Encryption) 是基于 JWT 标准的两种实现,用途不同:前者用于给数据签名,保障数据没有被篡改;后者用于数据加密,保障数据不被窃听。

Q3: 什么是 JWA?
A3: JSON Web Algorithms,JWA 描述了若干 JWE、JWS 使用到的加密算法与算法名称,比如 SHA1、HMAC。

Q4: JWT 和 HTTPS 的区别是什么?
A4: JWT 可以用于验证用户的合法性(是否是授权用户)和访问权限(是否对资源有权限);HTTPS 的证书可以用于验证服务器网站的合法性(未被劫持),用户与服务端的通信会被加密。(https://stackoverflow.com/questions/33005200/no-need-https-if-i-am-going-to-use-josejwtjwe)

Q5: JWT 规定了哪些东西?
A5: JWT 的头部(Header)包含一系列声明(claims),用于描述 JWS 的签名信息或者 JWE 的加密信息。JWS 由头部(Header)与载荷(Payload)组成;JWE 由头部(Header)与明文(plaintext)组成。头部包含一些关于处理相关的信息,比如加密、签名使用到的算法 alg,发布人 iss,失效时间 exp 等;载荷或者明文就是用户通过 JWT 传递的信息。

关于 RSA 的认知

RSA 是一种非对称加密算法,在 RSA 中包含私钥和公钥两种秘钥,私钥可以推到出公钥,但是公钥无法反推出私钥,用公钥加密过的数据,只要与之匹配的私钥才能解密。(https://jysperm.me/2017/09/gpg-and-e2ee/)

JWT 相关站点

  1. jwt official website
  2. jwt handbook
  3. jwt rfc
  4. jws rfc
  5. jwe rfc
  6. jwa rfc
  7. jose-php(one implmentation of PHP
  8. jose_php(another implementation of PHP)
  9. 一篇文章带你分清楚JWT,JWS与JWE

你可能感兴趣的:(JWT & JWE & JWE & JWA)