NodeJS实现不可逆加密与密码密文保存的方法


Posted in NodeJs onMarch 16, 2018

本文实例讲述了NodeJS实现不可逆加密与密码密文保存的方法。分享给大家供大家参考,具体如下:

在应用中,常常有要将用户的密码加密储存的需要。

以明文保存密码有个缺点:一旦泄漏时容易造成极大的损失,可能会连带其他网站的用户、密码也造成损失(因为大多数用户在多数网站使用相同的账号与密码)。

这个泄漏可能来自于两方面:骇客入侵与运维人员监守自盗。

为了防止在密码明文泄漏,我们需要对在数据库中保存的密码字段进行不可逆加密。准确地说,是加密以后再保存到数据库中。

常用的不可逆加密算法有MD5SHA-1

在NodeJS中,它们的使用极为简便,直接使用官方内建的 crypto 包即可:

var clearText = '123456';
// MD5 Hash
require('crypto').createHash('md5').update(clearText).digest('hex');
// 'e10adc3949ba59abbe56e057f20f883e'
// SHA-1 Hash
require('crypto').createHash('sha1').update(clearText).digest('hex');
// '7c4a8d09ca3762af61e59520943dc26494f8941b'

当用户注册时,将用户提交的密码先不可逆加密,然后将密文保存在数据库内。

当用户登录时,将用户提交的密码先以相同方式加密,然后与数据库中的密文比对,来判断密码的正误。

理论上有无数个密码对应同一个Hash值,不过不用过于担心被撞表的风险,因为相比之下,你的Web服务器与数据库可能会在泛洪攻击中先行崩溃。

NodeJs 相关文章推荐
nodejs的require模块(文件模块/核心模块)及路径介绍
Jan 14 NodeJs
提高NodeJS中SSL服务的性能
Jul 15 NodeJs
轻松创建nodejs服务器(9):实现非阻塞操作
Dec 18 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 #NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 #NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 #NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 #NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 #NodeJs
nodejs acl的用户权限管理详解
Mar 14 #NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 #NodeJs
You might like
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
js实现自定义路由
2017/02/04 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
python 随机数生成的代码的详细分析
2011/05/15 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
Django实现发送邮件功能
2019/07/18 Python
Mac安装python3的方法步骤
2019/08/09 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
python实现飞行棋游戏
2020/02/05 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
Python datetime模块使用方法小结
2020/06/18 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
服务行业标语口号
2015/12/26 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB