一、复习
cookie是在res中设置,req中读取的。第一次的访问没有cookie。
cookie的存储大小有限,kv对。对用户可见,用户可以禁用、清除Cookie、可以被篡改。
cookie用来制作记录用户的一些信息,必须购买历史、猜你喜欢。
HTTP是无状态的协议,所以两次的访问,服务器不能认识到是同一个客户端的访问,就要用cookie来巧妙的解决这个问题。
Session就是利用cookie,实现的“会话”。就是第一次访问的时候,可以在服务器上为这个用户缓存一些信息,别的用户是不能看见这个用户的信息的。服务器会下发一个秘钥(sessionid),客户端每次访问都携带这个秘钥,那么服务器如果发现这个秘钥吻合,就能够显示这个用户曾经保存的信息。
登陆就是用Session来制作的。任何语言的session都是透明的,不会体现cookie机理。
1var session = reqiure("express-session");
2
3app.use(session({
4 ..一些配置
5 ..一些配置
6 ..一些配置
7}));
8
9app.get("/",function(req,res){//cookie都是通过req设置读取的,其实不对的,应该是res来读取和设置cookie,
10 console.log(req.sission.login);
11});
12
13app.get("/login",function(req,res){
14 req.session.login = "1";
15});
都是使用req对象。 二、加密
永远不要用明码写密码。CSDN今年泄露用户密码了,并且泄露的明码。
黑客拿到的用户的密码的加密信息,所以也没用。因为他无法翻译成为明码。 MD5加密是函数型加密。就是每次加密的结果一定相同,没有随机位。
特点:
● 不管加密的文字,多长多短,永远都是32位英语字母、数字混合。
● 哪怕只改一个字,密文都会大变。
● MD5没有反函数破解的可能,网上的破解工具,都是通过字典的模式,通过大量列出明-密对应的字典,找到明码。两次加密网上也有对应的字典。所以我们不要直接用一层md5,这样对黑客来说和明码是一样。 MD5常用于作为版本校验。可以比对两个软件、文件是否完全一致。 node中自带了一个模块,叫做crypto模块,负责加密。 首先创建hash,然后update和digest: var crypto = require("crypto"); console.log(md5(md5("123456").substr(11,7) + md5("123456"))); //2层加密 function md5(mingma){
var md5 = crypto.createHash('md5');
var password = md5.update(mingma).digest('base64');
return password;
}

node17的更多相关文章

  1. some things

    ////html[1]/body[1]/div[9]/div[1]/div[1]/div[1]/ul/li  截取规则 Articles/Article[1]:选取属于Articles子元素的第一个A ...

  2. 使用HtmlAgilityPack抓取网页数据

    XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: nodename:选取此节点的所有 ...

  3. Hadoop学习笔记(一)

    HDFS适合一次写入,多次读取NameNode将文件系统的元数据存储在内存中,因此HDFS所能存储的文件总数受限于NameNode容量类:IOUtil Progressable URL.setURLS ...

  4. 黄聪:HtmlAgilityPack教程案例

    HtmlAgilityPack中的HtmlNode类与XmlNode类差不多,提供的功能也大同小异.下面来看看该类提供功能. 一.静态属性 public static Dictionary<st ...

  5. 黄聪:HtmlAgilityPack,C#实用的HTML解析类 ---- HtmlNode类

    HtmlAgilityPack中的HtmlNode类与XmlNode类差不多,提供的功能也大同小异.下面来看看该类提供功能. 一.静态属性 public static Dictionary<st ...

  6. MySQL深入利用Ameoba实现读写分离

    3 ameoba安装配置   3.1 安装配置JDK [root@stu15 ~]# rpm -ivh jdk-7u67-linux-x64.rpm [root@stu15 ~]# cd /usr/j ...

  7. HtmlAgilityPack 之 HtmlNode类

    HtmlAgilityPack中的HtmlNode类与XmlNode类差不多,提供的功能也大同小异.下面来看看该类提供功能. 一.静态属性 public static Dictionary<st ...

  8. Nginx +keepalived

    Nginx +keepalived   配置高可用的Nginx 准备环境: 节点node17,node18   lftp 172.16.0.1:/pub/Sources/6.x86_64/nginx ...

  9. Apache+lvs高可用+keepalive(主从+双主模型)

    Apache+lvs高可用+keepalive(主从+双主模型)     keepalive实验准备环境: httpd-2.2.15-39.el6.centos.x86_64 keepalived-1 ...

随机推荐

  1. 2015.05.15,外语,学习笔记-《Word Power Made Easy》 01 “如何讨论人格特点”

    2015.03.17,外语,读书笔记-<Word Power Made Easy> 01 “如何讨论人格特点”学习笔记 SESSIONS 1 本来这些章节都是在一两年前学习的,现在趁给友人 ...

  2. UVA 10127- Ones 数学

    Given any integer 0 ≤ n ≤ 10000 not divisibleby 2 or 5, some multiple of n is a number whichin decim ...

  3. bzoj4032: [HEOI2015]最短不公共子串(SAM+DP)

    4032: [HEOI2015]最短不公共子串 题目:传送门 题解: 陈年老题良心%你赛膜爆嘎爷 当初做题...一眼SAM...结果只会两种直接DP的情况... 情况1: 直接设f[i][j] 表示的 ...

  4. svn是什么

    svn是什么 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Sub ...

  5. [C#] 隐式类型var —— 示例解析

    从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,它的具体类型由编译器根据上下文推断而出. 下面就让我来总结下隐式类型的一些特点: 1.va ...

  6. oracle 索引优化之distinct

    11G R2环境: --DISTINCT测试前的准备drop table t purge;create table t as select * from dba_objects;update t se ...

  7. avformat_find_stream_info函数卡住问题

    问题:初始化RTSP流时,在android设备上卡住在avformat_find_stream_info函数,然后程序崩溃. 但其他URL没问题,且同样在代码在iOS上没问题,由于jni调试,也没看到 ...

  8. Java基础——GridBagLayout布局

    1.GridBagLayout布局管理器非常灵活,每个 GridBagLayout 对象维持一个动态的矩形单元网格: 2.需要和它的约束类(GridBagConstraints类)一起使用: 3.Gr ...

  9. DirectUI界面编程(零)简介

    有过Win32.MFC编程经验的朋友应该都知道,传统Windows应用中的按钮.编辑框等控件都是一个子窗口,操作系统通过窗口句柄来唯一标识该窗口. 使用Windows 标准控件创建用户界面,美化起来是 ...

  10. jquery的animate能渐变background-color

    在freecodecamp 上学习复习时,写了一个demo,引用了 jquery 实现 color 的渐变动画,然后运行测试的时候,发现其他功能都正常,就是无法是实现颜色的动画. 如: $('butt ...