token,UUID,session和Cookie

token

1.由于服务器需要标识已经登录的用户,所以服务器会生成一个独一无二的token返回给用户

2.将token保存在本地,以便下次访问时携带

在用户进行登录时使用UUID动态生成TOKEN,根据当前时间毫秒数+随机数利用hash算法生成几乎可以保证不重复.
        String token = UUID.randomUUID().toString().replace("-","");//使用replace将生成的字符串去除时间产生的“-”
 

生成UUID

使用md5加密方法对密码进行加密登录

String md5 = DigestUtils.md5DigestAsHex(要加密的内容:密码等);

一般情况下,企业登录不会直接使用密码(防止系统被攻破造成用户数据泄露),而是采取加密后的数据.

Session和Cookie

Session介绍

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。

小结:
1.Session称之为 “会话机制”
2.在浏览器中打开网页 就是一个会话.
3.用户的数据可以保存到会话中,但是有生命周期. 当会话关闭,则数据消失.

Cookie机制

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 [1] 。
说明:
1.cookie是一个小型的文本文件
2.cookie中存储的数据一般都是密文.
3.cookie中的数据的生命周期可控. 几天.几年!!!

session和cookie区别

1.session的数据是临时存储.cookie的数据可以永久保存. (生命周期不同)
2.sesion是浏览器中的一个内存对象!而cookie是一个实际的本地文件. (形式不同).
3.session一般存储是一些涉密数据.cookie一般存储相对公开的数据(免密登录). (安全性)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,请问您是想使用哪种编程语言呢?以下是一份Python的示例代码: ``` import hashlib import uuid import time # 模拟数据库中保存的用户信息 users = {'testuser': '123456'} # 定义一个用于生成随机字符串的函数 def generate_token(): return str(uuid.uuid4()) # 定义一个用于计算密码哈希值的函数 def calculate_hash(password): sha256 = hashlib.sha256() sha256.update(password.encode('utf-8')) return sha256.hexdigest() # 登录处理函数 def login(username, password): if username in users and users.get(username) == calculate_hash(password): token = generate_token() # 将token保存到session中,并设置过期时间为1小时后 session = {'token': token, 'expire_at': time.time() + 3600} # 保存session,并将session的id设置为cookie # 注意:这里需要将session id进行加密以防篡改 set_cookie('session_id', encrypt(str(session))) return True else: return False # 校验用户是否已登录的中间件 def auth_middleware(request): # 获取session id,并解密获取session内容 session_id = decrypt(request.cookies.get('session_id')) session = ast.literal_eval(session_id) # 判断session是否过期 if session.get('expire_at', 0) > time.time(): request.session = session return True else: return False ``` 上述代码中,login函数用于实现用户登录功能,输入用户名和密码后,如果校验通过,则生成一个token,并将token保存到session中。接着,将session的内容加密,将加密后的内容保存到cookie中,供后续验证使用。 auth_middleware函数则是一个中间件,用于校验用户是否已登录。在请求处理过程中,通过获取cookie中的session id,并解密获取session内容,判断session是否存在以及是否过期来确定用户是否已经登录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值