cookie

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


  1. const express = require('express')
  2. const cookieParser = require('cookie-parser')
  3. const app = express()
  4. app.use(cookieParser())
  5. app.get('/', (req,res)=>{
  6. res.send('欢迎' + req.cookies.username); // 如果有username cookie则显示username,否则显示undefined
  7. })
  8. app.get('/login', (req,res)=>{
  9. let username = req.query.username;
  10. res.cookie('username',username,{maxAge:99999, httpOnly:true}); // maxAge:cookie的有效期;httpOnly设置为true,可以防止XSS攻击,只能被web serve访问,不能通过document.cookie获取
  11. res.send('登录成功');
  12. })
  13. app.listen(80);

session

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


  1. const express = require('express')
  2. const session = require('express-session')
  3. const app = express()
  4. app.use(session({
  5. secret: '加密名字',
  6. resave: false, // 是否每次请求都重新设置session
  7. saveUninitialized: true // 无论有没有session,每次都请求设置一个session
  8. }))
  9. app.get('/',(req,res)=>{
  10. if(req.session.username){
  11. res.send('欢迎'+req.session.username)
  12. }else{
  13. res.send('<a href="/login?username=张三">请登录</a>')
  14. }
  15. })
  16. app.get('/login',(req,res)=>{
  17. req.session.username = req.query.username
  18. res.send('succ')
  19. })
  20. app.listen(80)

MD5加密


  1. const crypto = require('crypto');
  2. function md5(pwd){
  3. let md5 = crypto.createHash('md5');
  4. let password = md5.update(pwd).digest('base64');
  5. return password;
  6. }
  7. console.log(md5('12345678'));
  8. // 即使不同用户密码一样
  9. console.log(md5('12345678')+parseInt(Math.random()*10000));

来源:https://segmentfault.com/a/1190000016344275

cookie、session和md5加密的更多相关文章

  1. 前端笔记之Vue(七)Vue-router&axios&Vue插件&Mock.js&cookie|session&加密

    一.Vue-router(路由) 1.1路由创建 官网:https://router.vuejs.org/zh/ 用 Vue.js + Vue Router 创建单页应用,是非常简单的.使用 Vue. ...

  2. C# MD5加密的方法+一般处理程序使用Session+后台Json序列化

    1.MD5加密 string md5Str = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s ...

  3. soupUI解决md5加密签名,cookie传递

    问题详情: 1.接口调用需要前提状态:登录状态(cookie) 2.接口请求需要签名,签名规则为:MD5(TokenKey+apikey+timestamp+nonc) 其中 1.TokenKey.a ...

  4. cookie&session&servletContext

    一.cookie VS session 1)应用场景 cookie可以用于: 记录用户上次登录的时间 记住用户名和密码 session可以用于: 防止非法登录(即直接跳转到本来需登录验证方可登录的页面 ...

  5. day70 cookie & session 前后端交互分页显示

    本文转载自qimi博客,cnblog.liwenzhou.com 概要: 我们的cookie是保存在浏览器中的键值对 为什么要有cookie? 我们在访问浏览器的时候,千万个人访问同一个页面,我们只要 ...

  6. (转)C#实现MD5加密

    首先,先简单介绍一下MD5 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和r ...

  7. 4、C#进阶:MD5加密、进程、线程、GDI+、XML、委托

    MD5加密 将字符串进行加密,无法解密.网上的解密方式也都是在库里找,找不到也没有. 1 protected void Page_Load(object sender, EventArgs e) 2 ...

  8. C#实现MD5加密

    摘自:http://blog.csdn.net/shenghui188/archive/2010/03/28/5423959.aspx 方法一 首先,先简单介绍一下MD5 MD5的全称是message ...

  9. php会话控制cookie/session

    设置cookie PHP设置Cookie最常用的方法就是使用setcookie函数,setcookie具有7个可选参数,我们常用到的为前5个: name( Cookie名)可以通过$_COOKIE[' ...

随机推荐

  1. java23种设计模式——五、建造者模式

    源码在我的github和gitee中获取 目录 java23种设计模式-- 一.设计模式介绍 java23种设计模式-- 二.单例模式 java23种设计模式--三.工厂模式 java23种设计模式- ...

  2. Elasticsearch7.6 集群部署、集群认证及使用、数据备份

    window 环境部署集群 注意:window下载解压elasticsearch一定需要解压多次.例如搭建的3节点的,需要解压3次,防止生成 cluster UUID 一致导致只能看到一个节点 1.e ...

  3. 获取android手机的屏幕分辨率 android开发

    /** * 获取屏幕分辨率 */ private void getResolution() { // TODO Auto-generated method stub Display display = ...

  4. iOS NSNotification通知

    通知中心(NSNotificationCenter) 通知(NSNotification) 一个完整的通知一般包含3个属性:(注意顺序) - (NSString *)name;  通知的名称 - (i ...

  5. 前后端API交互如何保证数据安全性?

    前言 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合.无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用 ...

  6. Flutter Toast消息提示框插件

    Flutter Toast消息提示框插件 在开发flutter项目中,想必大家肯定会用到toast消息提示,说到这里, 大家肯定会想到https://pub.dev/ 插件库, 但是插件市场上有太多类 ...

  7. Rng(求逆元)

    Problem Description Avin is studying how to synthesize data. Given an integer n, he constructs an in ...

  8. JDK15就要来了,你却还不知道JDK8的新特性!

    微信搜「烟雨星空」,白嫖更多好文. 现在 Oracle 官方每隔半年就会出一个 JDK 新版本.按时间来算的话,这个月就要出 JDK15 了.然而,大部分公司还是在使用 JDK7 和 8 . 之前去我 ...

  9. PHP的八个魔术常量

    1. 什么魔术常量 预定义常量:预定义常量就是PHP内置的常量,预先定义好的 PHP有很多预定义常量,比如:PHP_VERSION(版本号).PHP_OS(操作系统). 这些普通的预定义常量在程序中的 ...

  10. Docker学习笔记二(linux下安装Docker)

    Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...