对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?

session机制:就是一个id号(cookie里面携带一个sessionid),所有客户的有效信息都存在服务端,只要产生sessionid后,客户端每次携带这个id就可以了,

      就是所有的数据信息都在服务端,每次请求来服务端,得到sessionid里面,再到数据库里面,再到自己后端去查,看sessionid对应得是哪个客户得信息,就知道是哪个客户了。

1、Token引入:在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,然后判断用户名和密码是否正确,并作出相应提示

2、Token:是服务端 把用户的有效信息 生成的一串字符串,直接放到Token里面,以作客户端进行请求的一个令牌。就不用频繁的去数据库查询

        第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

3、如何知道传的Token值没有被篡改?或者用户等级只有一级,说自己是三级?如何去验证的?

答:因为Token有个叫哈希算法的,可以把 任意长度的数据(字节串)计算出一个为固定长度的结果数据。

hash算法是不可逆的,是只有服务端能产生这样的数据,然后服务端产生的数据,跟密钥去进行验证就可以了

4、如果是Token机制,是否需要去测试它是否被篡改?

答:如果是Token机制,有必要去验证一下,作为测试,站在对系统不信任的角度,应该去测一下,(拿不到服务端的密钥,可以去伪造一个密钥)

如果开发人员对这个机制不了解,本来是写的,每次改的时候,临时去掉,后来忘记写,直接打包到生产环境里面去,大家都可以伪造了,

所以,毫无疑问应该去测试!!!

5、使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

6、应用场景1:校验拷贝下载文件:

下载大文件,由于种种原因,可能会出现传输出错的,校验 下载的文件 是不是 毫无差错?

使用哈希算法:1、下载的网站上,先提供 源文件的 的 哈希值

       2、下载完后,在我们的电脑上,把本地下载到的 文件也计算哈希值

3、比对,如果相等,下载没有问题

7、 应用场景1:校验信息有效性:

每年开学时,学生到 管理部 交学费,手机上发一条信息 张三,学费已交,张三带着这个手机信息到 教学部 领书,担心手机短信是伪造的

管理部的人,张三,学费已交|13ty8ffbs2v   (哈希算法计算)

教学部的人,张三,学费已交|13ty8ffbs2v   (哈希算法计算)

密匙:13ty8ffbs2v(只有管理部跟教学部知道),如果相等,说明短信,没有伪造

8、Python语言计算哈希值(hash算法是不可逆的)

9、加密解密(加解密算法 是可逆的)

对称加密:指 加密和解密 使用相同的 密钥

      常见的 对称加密算法有: AES, RC4, DES, 3DES, IDEA 等(安全等级较高的是 AES)

不对称加密:指 加密和解密 使用不同的 密钥

      通常是一对密钥,称之为公钥(用来加密)和私钥(用来解密)(不对称加密系统 就是 RSA )

Python语言加解密:pip install cryptography 安装该库

Token机制,session机制的更多相关文章

  1. Session机制详解

    转自:http://justsee.iteye.com/blog/1570652 虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能 ...

  2. 【转】理解cookie和session机制

    cookie和session机制之间的区别与联系 具体来说cookie机制采用的是在客户端保持状态的方案.它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持.cookie的作用就 ...

  3. 理解session机制

    理解session机制 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息. 当程序需要为某个客户端的请求创建一个session的时候,服务器首 ...

  4. cookie和session机制

    一.cookie和session机制之间的差别和联系 1.cookie机制 Cookie意为"甜饼",是由W3C组织提出,最早由Netscape社区发展的一种机制. 眼下Cooki ...

  5. cookie,Session机制的本质,跨应用程序的session共享

    目录:一.术语session二.HTTP协议与状态保持三.理解cookie机制四.理解session机制五.理解javax.servlet.http.HttpSession六.HttpSession常 ...

  6. JavaWeb---总结(十九)Session机制

    一.术语session session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.有时候我们可 ...

  7. cookie和session机制区别

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  8. 正确理解cookie和session机制原理

    php中cookie和session是我们常用的两个变量了,一个是用户客户端的,一个用在服务器的但他们的区别与工作原理怎么样,下面我们一起来看看cookie和session机制原理吧. cookie和 ...

  9. session 机制和 httpsession 详解 (转载)

    https://www.cnblogs.com/bjanzhuo/archive/2013/02/27/3575884.html 一.术语session 在我的经验里,session这个词被滥用的程度 ...

随机推荐

  1. 团队作业3 需求改进&系统设计(银河超级无敌舰队)

    目录 一.需求&原型改进 1. 需求改进 2. 修改说明书 3.功能分析 4. 调整WBS及计划 二.系统设计 1. 总体设计 2. 数据库设计 3.社团设计 三.Alpha任务分配计划 1. ...

  2. 键盘敲入 A 字母时,操作系统期间发生了什么

    前言 键盘可以说是我们最常使用的输入硬件设备了,但身为程序员的你,你知道「键盘敲入A 字母时,操作系统期间发生了什么吗」? 那要想知道这个发生的过程,我们得先了解了解「操作系统是如何管理多种多样的的输 ...

  3. (转载)std::enable_if 的几种用法 c++11

    今天看confluo源码中看到了std::enable_if这一个我不了解的语法,所以记录下来 转载地址:https://yixinglu.gitlab.io/enable_if.html std:: ...

  4. Java数据结构——红黑树

    红黑树介绍红黑树(Red-Black Tree),它一种特殊的二叉查找树.执行查找.插入.删除等操作的时间复杂度为O(logn). 红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点 ...

  5. Java多线程_Semaphore信号量

    概念: Semaphore是信号量,又称为信号灯,它可以控制某个共享资源可被同时访问的次数,即可以维护当前访问某一共享资源的线程个数,并提供了同步机制.当Semaphore的个数变成1时,即代表只允许 ...

  6. static,private,final,abstract,protected

    1,static:静态变量:位于方法区中,只有一份,这个类的所有实例共享,不可以被继承 静态方法:直接通过类就能调用,静态方法中只能使用静态变量,不可以被继承 2,private:类不能用privat ...

  7. 【趣味设计模式系列】之【代理模式4--ASM框架解析】

    1. 简介 ASM是assemble英文的简称,中文名为汇编,官方地址https://asm.ow2.io/,下面是官方的一段英文简介: ASM is an all purpose Java byte ...

  8. elementui table fixed错位

          目前在官方没有解决这个bug前如果有人碰到类似问题.建议大家监听table数据,每次数据得到或改变的时候去重新渲染一下 /* 监听table数据对象 */ watch: { tableDa ...

  9. tars 部署

    1. mysql url:  192.168.101.3 port: 3306 pw: 123456 一键部署 sudo ./linux-install.sh localhost 123456 en0 ...

  10. Google Code Jam 2020 Round1B Join the Ranks

    题意 给你一个形如\(1,2,\cdots,R,1,2,\cdots,R,1\cdots\)的序列,共重复\(C\)次.你每次可以选择一个区间\([L,R]\)将其平移到序列首部,最终使得序列具有\( ...