当前位置: 首页 > news >正文

合肥学网站设计seo网站建设价格

合肥学网站设计,seo网站建设价格,淘宝做网站给了钱,网站上的销售怎么做文章目录 1、base64编码2、Base64Url3、JWT的产生背景4、JWT介绍5、JWT组成5.1 Header5.2 Payload5.3 Signature 6、JWT的使用方式7、JWT的几个特点 1、base64编码 base64是一种编码方式#xff0c;不是加密方式。 所谓Base64#xff0c;就是说选出64个字符#xff1a;小写… 文章目录 1、base64编码2、Base64Url3、JWT的产生背景4、JWT介绍5、JWT组成5.1 Header5.2 Payload5.3 Signature 6、JWT的使用方式7、JWT的几个特点 1、base64编码 base64是一种编码方式不是加密方式。 所谓Base64就是说选出64个字符小写字母a-z、大写字母A-Z、数字0-9、符号“、”/“再加上作为垫字的”实际上是使用65个字符作为一个基本字符集。然后其他文件视频、文本、字符串…里的所有符号都转换成这个字符集中的字符。 所谓的垫字的号即base64三个字节一分最后不够分的时候拿等号占位一下也就是说等号只能出现在末尾且最多两个。缺三字节那就是前面刚好够分所以最多可能有两个 在Linux下编码为 echo -n Hello World | base64 SGVsbG8gV29ybGQ 解码为 echo -n SGVsbG8gV29ybGQ | base64 -d Hello World 其中 echo 命令带换行 echo -n 即不换行输出 echo -n {alg:HS256,typ:JWT} | base64以上是通过管道将echo的结果传给后面的指令当然可以直接base64配合CtrlD结束输入。 也可以对文件进行base64编码和解码 #base64编码 # base64 待编码的文件名 编码后的文件名 base64 1.mp3 mymp3 #打开就是一堆64个字符组成的文件#base64 解码 #base64 -d 待解码的文件名 解码后的文件名 base64 -d mymp388.mp32、Base64Url Base64Url是一种在Base64的基础上编码形成新的编码方式为了编码能在网络中安全顺畅传输需要对Base64进行的编码特别是互联网中。 Base64Url编码的步骤是 明文使用BASE64进行编码在Base64编码的基础上进行以下的处理 1)去除尾部的2)把替换成-3)斜线/替换成下划线_ 3、JWT的产生背景 互联网服务离不开用户认证基于session的流程是 用户向服务器发送用户名和密码服务器验证通过后在当前对话session里面保存相关数据比如用户角色、登录时间等等服务器并向用户返回一个session_id写入用户的cookie用户随后的每一次请求都会通过 Cookie将 session_id 传回服务器服务器收到 session_id找到服务端前期保存的数据由此得知用户的身份 这种模式的问题在于扩展性scaling不好。单机当然没有问题如果是服务器集群或者是跨域的服务导向架构就要求 session 数据共享每台服务器都能够读取 session。 举例来说A 网站和 B 网站是同一家公司的关联服务。现在要求用户只要在其中一个网站登录再访问另一个网站就会自动登录单点登录请问怎么实现 解决方案一服务端做session数据持久化 即服务端将写入数据库或别的持久层。各种服务收到请求后都向这个持久层请求数据。这种方案的优点是架构清晰缺点是工程量比较大。另外持久层万一挂了就会单点失败。 解决方案二服务端不再保存 session 数据了所有数据都保存在客户端 如JWT服务器不存数据客户端存服务器解析就行了解析出来JWT合法则允许访问系统。 以上是JWT实现登录的原理图即客户端认证通过后被下发一个令牌客户端发起请求时携带这个令牌服务端可以通过算法和密钥进行令牌合法性校验不再依赖数据库Memcached的等存储系统因此可以做到跨服务器验证只要密钥和算法相同不同服务器程序生成的Token可以互相验证通过。这就是JWT和session的区别用JWT时服务端啥也不用存就做个校验。 直白讲就是服务端用解析 token 的计算时间换取 session 的存储空间从而减轻服务器的压力减少频繁的查询数据库。 4、JWT介绍 JSON Web TokenJWT是一个开放标准RFC 7519它定义了一种紧凑且独立的方式用于在各方之间作为JSON对象安全地传输信息。 此信息可以通过数字签名进行验证和信任。JWT可以使用密钥使用HMAC算法或使用RSA或ECDSA的公钥/私钥对进行签名。 相关文档 官方网址https://jwt.io/调试页面https://jwt.io/学习文档https://jwt.io/introduction/ JWT的主要用途有 授权一次登录后后续请求携带token校验合法的token则允许访问系统的资源。JWT广泛应用于单点登录SSOSingle Sign On上因为其开销很小且可以在不同领域轻松使用信息交换JSON Web Token是一种在各方面之间安全信息传输的好的方式 因为JWT可以签名 - 例如使用公钥/私钥对 - 您可以确定发件人是他们所说的人。 此外由于使用标头和有效负载计算签名您还可以验证内容是否未被篡改。 5、JWT组成 一个JWT由三部分组成各部分以点分隔xxxxx.yyyyy.zzzzz格式Header(头部-----base64Url编码的Json字符串 Payload(载荷—base64url编码的Json字符串 Signature(签名)—使用指定算法通过Header和Playload加盐计算的字符串 举例 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 .eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ .SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c5.1 Header 头部由两部分组成 1token的类型目前只能是JWT2签名算法比如HMAC 、 SHA256 、 RSA 示例 {alg:HS256,typ:JWT } 编码 echo -n {alg:HS256,typ:JWT} | base64得到的就是JWT的第一部分。 5.2 Payload payload就像车厢里面拉了很多东西比如用户名。 payload有效负载其中包含claims声明。Claims是关于一个实体通常是用户和其他数据类型的声明。Claims又有三种类型 registeredpublicprivate 1 Registered已注册的声明这些是一组预定义声明不是强制性的但建议使用以提供一组有用的可互操作的声明。 其中一些是iss发行人exp到期时间sub主题aud观众and others。请注意声明名称只有三个字符因为JWT意味着紧凑。 2 Public(公开声明)这些可以由使用JWT的人随意定义。 但为避免冲突应在IANA JSON Web Token Registry中定义它们或者将其定义为包含防冲突命名空间的URI。 3 private (私人声明)这些声明是为了在同意使用它们的各方之间共享信息而创建的并且既不是注册声明也不是公开声明。 示例{sub: 1234567890,name: John Doe,admin: true } 5.3 Signature Signature是用来保证数据安全的是对前两部分head、payload的签名防止数据篡改。首先需要指定一个密钥secret。这个密钥只有服务器才知道不能泄露给用户。然后使用 Header 里面指定的签名算法默认是 HMAC SHA256按照下面的公式产生签名 HMACSHA256(base64UrlEncode(header) . base64UrlEncode(payload),secret) 算出Signature值后再把 Header、Payload、Signature 三个部分拼成一个字符串每个部分之间用点.分隔就可以返回给用户。这就是一个JWT值。 6、JWT的使用方式 客户端收到服务器返回的 JWT可以储存在 Cookie 里面也可以储存在 localStorage本地存储。此后客户端每次与服务器通信都要带上这个 JWT。你可以把它放在 Cookie 里面自动发送但是这样不能跨域所以更好的做法是放在 HTTP 请求的头信息Authorization字段里面。即 Authorization: Bearer jwt 另一种做法是跨域的时候JWT 就放在 POST 请求的数据体里面。 当放本地存储localStorage的时候每次请求需要前端同事从localStorage里取出来放到请求头里再请求后端的controllercontroller中httpServletRequest.getHeader()从请求头里获取出来然后校验合法性合法则允许访问。 7、JWT的几个特点 JWT 默认是不加密但也是可以加密的。生成原始 Token 以后可以用密钥再加密一次。JWT 不加密的情况下不能将秘密数据写入 JWT。JWT 不仅可以用于认证也可以用于交换信息。有效使用 JWT可以降低服务器端查询数据库的次数。 JWT 的最大缺点是由于服务器不保存 session 状态因此无法在使用过程中废止某个 token或者更改 token 的权限。也就是说一旦 JWT 签发了在到期之前就会始终有效除非服务器部署额外的逻辑JWT的登出问题。后面再说redis就是因为服务端无状态了所以正常情况下 修改了密码后就会跳转到登录页面重新登录修改成功后清空浏览器保存的token了重新认证拿新的token服务端无状态改不了令牌。JWT 本身包含了认证信息一旦泄露任何人都可以获得该令牌的所有权限。为了减少盗用JWT 的有效期应该设置得比较短。对于一些比较重要的权限使用时应该再次对用户进行认证。为了减少盗用JWT 不应该使用 HTTP 80 协议明码传输要使用 HTTPS 443 协议传输。
http://www.w-s-a.com/news/138353/

相关文章:

  • 校园网站建设管理工作制度大网站开发费用
  • 做logo赚钱的网站分类网站 模板
  • 网站建设完成报告织梦网站怎么做备份
  • 邯郸市城乡建设管理局网站vimwiki wordpress
  • 如何修改wordpress站名如何制作公司网站
  • 宁波网站建设与推广方案网站有了备案号之后能做什么
  • 汕头手机端建站模板pinterest app下载
  • 网站主机免费宁波网站建设优化诊断
  • 吧网站做软件的软件下载简单的ui界面制作
  • 陕西网站制作公司网页制作与设计代码
  • 做网站行情郑州微信网站开发
  • 河间网站建设制作null wordpress theme
  • h5网站制作网站开发网站建设文翻译工作
  • 网站建设 税种秦皇岛哪有网站优化公司
  • 专业开发网站设计找人做网页需要多少钱
  • 手机购物网站 建站网站建设网站制作网站设计
  • 基于iview的网站开发模板小程序制作需要什么语言
  • 精美网站设计保定建行网站首页登录
  • 网站建设常见问题做网站保存什么格式最好
  • 营销型网站建设与网页设计网站建设 amp 找VX cp5173
  • 新网站该如何做网站优化呢儿童手工
  • 湖北现代城市建设集团网站搜索引擎优化的作用
  • 上海做网站吧开一家软件开发公司需要什么
  • 阿里巴巴网站建设改图片建设厅官方网站河南
  • 邓砚谷电子商务网站建设镇江网
  • 网站空间支持什么程序工作服款式
  • 网站单页品牌网站建设 蝌蚪5小
  • 怎么做外贸网站需注意哪些做电脑系统的网站
  • 网站建设介绍推广用语河南网站优化外包服务
  • 课程网站模板贵州省城乡与建设厅网站