JWT RS256 base64 md5
1.什么是JWT
JWT由三部分组成(Header,Payload,Signature),可以把用户名、角色等无关紧要的信息保存到Payload部分。
Header:base64enc({ "alg":"HS256","TYPE":"JWT"}) // eyAiYWxnIjoiSFMyNTYiLCJUWVBFIjoiSldUIn0=
Payload:base64enc({"user":"vichin","pwd":"weichen123"}) //用户的关键信息 eyJ1c2VyIjoidmljaGluIiwicHdkIjoid2VpY2hlbjEyMyJ9
Signature:HMACSHA256(base64enc(header)+","+base64enc(payload),secretKey)
Header和Payload部分使用的是Base64编码,几乎等于明文,Signature部分是根据header+payload+secretKey进行加密算出来的,如果Payload被篡改,就可以根据Signature解密时候校验。
RS256 (采用SHA-256 的 RSA 签名) 是一种非对称算法, 它使用公共/私钥对: 标识提供方采用私钥生成签名, JWT 的使用方获取公钥以验证签名。由于公钥 (与私钥相比) 不需要保护, 因此大多数标识提供方使其易于使用方获取和使用 (通常通过一个元数据URL)。
MD5
MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理