cookie、session和md5加密

cookie

Http无状态协议,只能在同一个网站(包括多个页面)下获取,存储在客户端本地的一段信息,帮助咱们存储信息获取信息。可是一样有风险:咱们本身在浏览器上能够操做或者设置Cookie。web

const express = require('express')
const cookieParser = require('cookie-parser')
const app = express()

app.use(cookieParser())

app.get('/', (req,res)=>{
    res.send('欢迎' + req.cookies.username); // 若是有username cookie则显示username,不然显示undefined
})

app.get('/login', (req,res)=>{
    let username = req.query.username;
    res.cookie('username',username,{maxAge:99999, httpOnly:true}); // maxAge:cookie的有效期;httpOnly设置为true,能够防止XSS攻击,只能被web serve访问,不能经过document.cookie获取
    res.send('登陆成功');
})

app.listen(80);

session

session是基于cookie实现,关闭浏览器就会消失。session会经过cookie保存一个sessionID在客户端,若是浏览器对cookie禁用了,那么session天然也就没办法应用了。express

const express = require('express')
const session = require('express-session')

const app = express()

app.use(session({
    secret: '加密名字',
    resave: false, // 是否每次请求都从新设置session
    saveUninitialized: true // 不管有没有session,每次都请求设置一个session
}))

app.get('/',(req,res)=>{
     if(req.session.username){
        res.send('欢迎'+req.session.username)
    }else{
        res.send('<a href="/login?username=张三">请登陆</a>')
     }

 })

app.get('/login',(req,res)=>{
    req.session.username = req.query.username
     res.send('succ')
})

app.listen(80)

MD5加密

const crypto = require('crypto');
function md5(pwd){
    let md5 = crypto.createHash('md5');
    let password = md5.update(pwd).digest('base64');
    return password;
}
console.log(md5('12345678'));
// 即便不一样用户密码同样
console.log(md5('12345678')+parseInt(Math.random()*10000));
相关文章
相关标签/搜索