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框架Express的模板视图机制分析
Jul 19 NodeJs
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
Aug 03 NodeJs
Nodejs学习笔记之Global Objects全局对象
Jan 13 NodeJs
nodejs爬虫抓取数据乱码问题总结
Jul 03 NodeJs
初探nodeJS
Jan 24 NodeJs
详解nodejs中exports和module.exports的区别
Feb 17 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 NodeJs
浅谈Node的内存泄露问题
May 06 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
eAccelerator的安装与使用详解
2013/06/13 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
简短大学毕业感言
2014/01/18 职场文书
活动策划邀请函
2014/02/06 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
2014年新生军训方案
2014/05/01 职场文书
产品发布会策划方案
2014/05/12 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
2014年小学工作总结
2014/11/26 职场文书
亮剑观后感600字
2015/06/05 职场文书
技能培训通讯稿
2015/07/18 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
MySQL 四种连接和多表查询详解
2021/07/16 MySQL
Python学习之包与模块详解
2022/03/19 Python
python 学习GCN图卷积神经网络
2022/05/11 Python