当前位置: 首页 > 后端技术 > Node.js

cookie、session和md5加密

时间:2023-04-04 00:56:58 Node.js

cookieHttp无状态协议,只能在同一个网站(包括多个页面)下获取,在客户端本地存储一条信息,帮助我们存储信息和获取信息。但也存在风险:我们可以在浏览器上操作或设置cookie。constexpress=require('express')constcookieParser=require('cookie-parser')constapp=express()app.use(cookieParser())app.get('/',(req,res)=>{res.send('Welcome'+req.cookies.username);//如果有用户名cookie,显示用户名,否则显示undefined})app.get('/login',(req,res)=>{letusername=req.query.username;res.cookie('username',username,{maxAge:99999,httpOnly:true});//maxAge:cookie的有效期;httpOnly设置为true,可以防止XSS攻击,只能通过webserve访问,无法通过document.cookie获取res.send('登录成功');})app.listen(80);sessionsession是基于cookie实现的,关闭后消失浏览器。session会通过cookie在客户端保存一个sessionID。如果浏览器禁用了cookie,session自然不会被应用。constexpress=require('express')constsession=require('express-session')constapp=express()app.use(session({secret:'加密名称',resave:false,//每次请求是否重置thesessionsaveUninitialized:true//不管有没有session,每次都请求一个session}))app.get('/',(req,res)=>{if(req.session.username){res.send('欢迎'+req.session.username)}else{res.send('请登录')}})app.get('/login',(req,res)=>{req.session.username=req.query.usernameres.send('succ')})app.listen(80)MD5加密constcrypto=require('crypto');functionmd5(pwd){让md5=crypto.createHash('md5');让密码=md5.update(pwd).digest('base64');returnpassword;}console.log(md5('12345678'));//即使不同用户密码相同console.log(md5('12345678')+parseInt(Math.random()*10000));