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));
相關文章
相關標籤/搜索