zoukankan      html  css  js  c++  java
  • Token机制,session机制

    对于初学者来说,对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 安装该库

  • 相关阅读:
    iframe上下传递对象方法
    Chrome Console 基本调试方法
    javascript 获取div长度和宽度
    Python with语句用法
    KVM -> 虚拟机在线热添加技术_04
    查看系统日志的实用操作
    2018-11-3& maven
    Gitlab & Github
    Git详解
    Jenkins与代码上线解决方案
  • 原文地址:https://www.cnblogs.com/xiaomengceshi/p/13635941.html
Copyright © 2011-2022 走看看