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 sublime text 3安装与配置
Jun 19 NodeJs
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
Nodejs实现的一个简单udp广播服务器、客户端
Sep 25 NodeJs
基于NodeJS的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
nodejs基础知识
Feb 03 NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 NodeJs
NodeJS创建最简单的HTTP服务器
May 15 NodeJs
nodejs操作mysql实现增删改查的实例
May 28 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
关于NodeJS中的循环引用详解
Jul 23 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 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 不使用js实现页面跳转
2014/02/11 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
php之可变变量的实例详解
2017/09/12 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
Javascript的&&和||的另类用法
2014/07/23 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
使用JavaScript破解web
2018/09/28 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
实例讲解Python中函数的调用与定义
2016/03/14 Python
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
Python如何合并多个字典或映射
2020/07/24 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
完美主义个人的自我评价
2014/02/17 职场文书
学校就业保障协议书
2019/06/24 职场文书
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL