base64编码 效果:使用64个可打印的字符来表示二进制数据的方法。
A-Z a-z 0-9 + /
一共64个字符,本质上是进行表示,并不是加密(但如果打乱字符顺序,也可以达到加密的效果)
具体原理见博客:[一篇文章弄懂Base64编码原理_mijichui2153的博客-CSDN博客]()
base64Url编码 base64编码将’+’、’/‘替换成’-’、’_’,将=去掉,就成为了base64url编码,因为这三个字符在url有特殊意义。
JWT
json web token
JWT是一种用户认证方案,用于保持登录等。
- 用户进行登录,用户名和密码传给后端
- 【安全|jwt与base64和base64url】后端对header和payload进行base64Url编码,再用字符 ‘.’ 进行连接
- 配置一个密钥(只有后端持有),对编码后的串进行签名,得到一个token字符串
- 将token字符串传给客户端
- 之后每次客户端发起有权限限制的请求时,都在请求头中的authorization中携带这个token字符串(记得前面加上Bearer + 空格)
- 后端每次拿到请求,先检查(当然是用之前那个密钥进行解密)这个token是否过期,是否正确,通过后再进行其他响应
-
'alg':'HS256'
-
'typ': 'JWT'
payload:
payload就是传输的具体内容,默认不加密,所以敏感的内容,比如密码,不加密的情况下就不要往里放。
参考阮一峰先生的博客:JSON Web Token 入门教程
推荐阅读
- 计网|WebSocket JS
- react|React hook useEffect 与 计时器 setInterval
- Web|动态创建表格案例
- Web|Web API 实用案例
- Web|Web APIs 实用案例
- JavaScript|JavaScript循环及案例
- JavaScript|JavaScript数据类型
- 后端|字符串虐哭空巢老人记
- Android技术汇总|Android应用安全开发之浅谈加密算法的坑