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学习笔记之NET模块
Jan 13 NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
用nodejs的实现原理和搭建服务器(动态)
Aug 10 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 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 输出简单动态WAP页面
2009/06/09 PHP
PHP 程序员的调试技术小结
2009/11/15 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
2010/11/16 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
Python实现计算最小编辑距离
2016/03/17 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
keras中的History对象用法
2020/06/19 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
单位刻章介绍信范文
2014/01/11 职场文书
寒假实习自荐信
2014/01/26 职场文书
社团文化节策划书
2014/02/01 职场文书
效能风暴心得体会
2014/09/04 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
大明湖导游词
2015/02/03 职场文书
董事长岗位职责
2015/02/13 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
张丽莉观后感
2015/06/16 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python