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的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 NodeJs
nodejs处理tcp连接的核心流程
Feb 26 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之面向对象
2013/05/15 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
JavaScript操作cookie类实例
2015/03/31 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
Python中的urllib模块使用详解
2015/07/07 Python
Python实现配置文件备份的方法
2015/07/30 Python
Python Merge函数原理及用法解析
2020/09/16 Python
使用Python封装excel操作指南
2021/01/29 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
关于母亲节的感言
2014/02/04 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
读书月活动方案
2014/05/22 职场文书
环保宣传标语
2014/06/12 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
数学教师求职信范文
2015/03/20 职场文书
2015年新教师工作总结
2015/04/28 职场文书
新店开张宣传语
2015/07/13 职场文书
公司费用报销管理制度
2015/08/04 职场文书
会计做账心得体会
2016/01/22 职场文书
GPU服务器的多用户配置方法
2022/07/07 Servers