哈希加密bcrypt和cookie和session和joi 和``formidable``FileReader
1.哈希加密bcrypt
1.密码加密
哈希加密是单程加密方式:1234=>abcd
;
在加密密码中加入随机字符串可以增加密码被破解的难度;
//导入bcrypt模块
const bcrypt = require(‘bcrypt’);
//生成随机字符串 gen=>generate 生成salt 盐
// genSalt方法接收一个数值作为参数
// 数值越大 生成的随机字符串复杂度越高
// 数值越小 生成的随机字符串复杂度越低
// 默认值是 10
// 返回生成的随机字符串
let salt = await bcrypt.genSalt(10);
//使随机字符串对密码进行加密
// 1. 要进行加密的明文
// 2. 随机字符串
// 返回值是加密后的密码
let pass = await bcrypt.hash(‘明文密码’,salt);
bcrypt 依赖的其他环境
-
python 2.x
-
node-gyp npm install -g node-gyp
-
windows-build-tools
-
npm install --global --production windows-build-tools
2.密码对比
// 密码比对
let result = await bcrypt.compare(‘明文密码’, ‘加密密码’);
2.cookie和session
cookie:浏览器在电脑硬盘中开辟一块空间,主要供服务器端存储数据;
1.cookie中的数据是以域名的形式进行区别的;
2.cookie中的数据是有过期时间的,超过时间数据会被浏览器自动删除;
3.cookie中的数据会随着请求被自动发送到服务器端;
session:实际上就是一个对象,存储在服务器的内存中,在session对象中也可以存储多条数据,每一条数据都有一个sessionid作为唯一标识;
在node中使用express-session 模块中实现session功能
// 导入express-session模块
const session = require(‘express-session’);
// 配置session
app.use(session({
secret: ‘secret key’,
resave:false,
saveUninitialized: false,
cookie:{
//maxAge接收一个毫秒,从当前时间起,加上设置的时间,如果超过设置的时间,就删除
maxAge:246060*1000
}
}))
从用户页面从session中获取数据
// 创建用户列表路由
admin.get(‘/user’,(req,res)=>{
res.render(‘admin/user’,{
//在渲染页面中使用模板拼接用户名,在页面中显示
msg:req.session.username
})
})
//将用户名存储在请求对象中
//通过请求对象req下边的session对象存储,是express-session模块添加的方法
//这样就可以向session对象里边存储一些数据,在内部自动生成一个唯一的sessionid,并且把sessionis存储到客户端的cookie中
req.session.username = user.username;
3.joi (javaScript对象的规则描述语言和验证器)
安装第三方包 npm install joi
//引入joi模块
const joi = require(‘joi’);
//定义对象的验证规则
const schema = {
username:joi.string().min(2).max(5).required().error(new Error(‘username属性没有通过验证’)),
birth:joi.number().min(1900).max(2020).error(new Error(‘birth没有通过验证’))
};
async function run(){
try {
//验证
await joi.validate({username:‘ab’,birth:1901},schema);
}
catch(ex){
console.log(ex.message);
return;
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可领取!
/03/13/H4lCoPEF.jpg" />
最后
由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可领取!
[外链图片转存中…(img-YxFKUaz0-1712656932214)]
[外链图片转存中…(img-s1bF38gt-1712656932215)]