一、复习
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;
}

最新文章

  1. pythony语法小练习
  2. .Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'.
  3. hdu2457
  4. echarts.js 做图表的插件
  5. ubuntu 图形界面查看隐藏文件
  6. EXCEL中讲 10分10秒转换成610秒
  7. git 简单用
  8. [转] [Visual Studio 2012] 找回 建立單元測試 選單
  9. Android中SurfaceView的使用详解
  10. 草稿-Hyper-V
  11. 卸载AMH 5.0面板的具体办法
  12. mvc图片地址
  13. HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题)
  14. Android Studio导包无效,全部报红
  15. 关于display的属性:block和inline-block以及inline的区别,float相关说明
  16. day 3 - 2 数据类型练习
  17. Luncene学习 第一天 《入门程序》
  18. xdoj 1237 (贪心+逆向思维)
  19. virtualbox+vagrant学习-4-Vagrantfile-4-Tips & Tricks
  20. android基础组件---->Checkboxe的使用

热门文章

  1. python matplot 绘图
  2. 【POJ 2481】 Cows
  3. Java做一个时间的程序,为什么要除以1000*60*60*24啊。这个数字是什么意思啊。
  4. webform 下使用autofac
  5. Python的四个内置数据类型list, tuple, dict, set
  6. maridb Error 'Operation DROP USER failed for
  7. 发现个很变态的css问题,记录下。
  8. 如何让select中的滚动条自动定位到框中选中项的位置
  9. linux中一次创建多个目录
  10. 阿里云Linux系统安装配置Tomcat方法