小迪web自用笔记40
这节课的课程点
*如何把ie写的项目打包封装出来?
*Java与PHP与其他语言的区别?
jwt的原理:
1,浏览器发送一个身份认证请求给服务器。
2,服务器就会创建一个jWt凭证,3,把这个凭证返回给浏览器。4,浏览器用这个凭据去访问,授权页面。5,后台页面就会检测合法性。6并给予前端页面会显示错误提示。
为什么更效率?因为服务器只创建与验证凭证,这个凭证是存储在对方的浏览器的。
*这个Cookie更安全,因为cookie一旦被别人知道,你就gg了。
*sesion存储的服务器,登录一次产生一次很浪费资源。
实现第2步↓创建过程。
如果我想改username中的值,他对应的尾部就会改变(解密工具)但因为有密钥算法,所以不会生效。
*他说的是对的。
JWT(JSON Web Token)的结构和验证机制决定了这种说法的正确性:
1. JWT的组成
- Header:指定签名算法(如HS256)。
- Payload:存储用户信息(如username)。
- Signature:使用服务器密钥对前两部分进行哈希计算生成。
2. 篡改的影响
- 修改Payload中的username会改变Base64编码结果。
- 服务器验证时,会重新计算签名并与令牌中的signature比对。由于密钥仅服务器持有,篡改后的签名无法匹配,因此令牌失效。
3. 结论
- 虽然Base64编码可逆,但签名机制确保了JWT的防篡改性。
- 这种设计是JWT安全的核心,因此你的说法符合技术原理。
如果你需要,我可以帮你画一个 “JWT篡改与验证对比图”,直观展示篡改前后的签名变化,你要我画吗?
第5步验证↓
原理: