jwt token有3部分组成 header:头部 签名算法和类型 payload:载荷 携带数据部分 密码不要放这里 不要以为是安全的 不能放敏感数据 有可能造成泄密,可以通过base64解密得到里面的内容 signature:签名 防止header和payload被篡改 签名是加密的 签名的算法就是把header进行base64编码 把payload进行base64编码 然后整个的用加密算法加密 就是秘钥里的 hader里的alg HS256加密 加密就是 header的base64编码和payload的base64编码进行加密 加密得到的就是签名 没有秘钥是解不开的 就是得到这个JWT了不能篡改里面的内容 验证的时候就是把签名部分解开 看签名部分的header和payload是否跟原来的一致 如果一致 说明没有被篡改 HS256对称加密 RS256 非对称加密支付宝经常用到 这时会有1个公钥和1个私钥 用私钥对JWT进行签名 然后用公钥验签 JWT用来认证和传输的传输标准 主要用来认证和微服务之间相互传递的格式 t31 auth 没有令牌不让访问 有令牌查看权限 普通令牌和管理员令牌
jWT可以基于秘钥的方式对JWT进行校验 对称加密使用1个秘钥 用它来签名 也用他来解 非对称加密有两个秘钥 1个秘钥签名 1个秘钥验签 私钥发的令牌 公钥都可以验签 授权服务器 我们采⽤JWT私钥颁发令牌,公钥校验令牌,这⾥先试⽤keytool⼯具⽣成公钥私钥证书
keytool -genkeypair -alias kaikeba -keyalg RSA -keypass kaikeba -keystore kaikeba.jks -storepass kaikeba Keytool 是一个java提供的证书管理工具 -alias:密钥的别名 -keyalg:使用的hash算法 -keypass:密钥的访问密码 -keystore:密钥库文件名 -storepass:密钥库的访问密码