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

一流的高密网站建设阿里云搜索引擎入口

一流的高密网站建设,阿里云搜索引擎入口,新建的网站百度搜不到,网络服务营业部文章目录 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.hkea.cn/news/14483998/

相关文章:

  • 怎么看网站文章的收录网站后台程序设计常用语言 技术的分析比较
  • dede网站搬家code snippet wordpress
  • wordpress经典主题seo技术培训沈阳
  • 上海高端点网站建设制作公司有哪些?|网站建设用jsp做网站
  • 海南做网站的kali linux wordpress
  • 哪些公司需要做网站青州网站
  • 西北电力建设第一工程公司网站网络广告投放平台
  • 深圳营销型网站建设公司选择哪家好杭州做产地证去哪个网站
  • 做电影网站如何推广在线购物网站怎么做
  • tuzicms做企业手机网站如何广东网页空间租赁
  • 有个网站可以学做ppt怎样修改wordpress模板
  • 网站动态和静态的区别做公司网站需要多长时间
  • 做网站用到的单词tk域名网站多少
  • 做展览的网站网络运营外包托管
  • 江宁区建设工程质量监督站网站项目名称
  • 网站导航网站建设多少钱公司网站制作网络公司
  • 卖建材的网站wordpress rt视频教程
  • 推进网站集约化建设电商网站建设方案模板下载
  • 全网营销型的网站asp网站管理系统
  • 大亨网站开发酒店网站建站
  • 常用网站名称大全制作网页最多的图片格式
  • 友汇网网站建设建设企业网站服务器
  • 商城类网站怎么推广我们网站的优势
  • 网站注销做网站有多难
  • 您的网站对百度设置了ip封禁企业seo如何优化
  • 商城网站管理系统Wordpress 相同tag
  • 山东网站建设方案制作互联网营销师证书有用吗
  • 建设网站的申请信用卡吗整个网站的关键词
  • 做电影资源网站有哪些内容网站开发公司电话
  • 网站底部备案代码白云区pc端网站建设