浅谈如何通过node.js对数据进行MD5加密


Posted in Javascript onMay 16, 2018

md5介绍:MD5是一种常用的哈希算法,主要用于对一些重要数据进行“签名”,当然这些数据可以是任意的。最终得到的“签名”通常都是一个16或32位的十六进制的字符串。

实际工作开发中,是不会有人直接将密码明文直接放到数据库当中的。因为这种做法是非常不安全的,一般都要对其进行MD5加密!比如某用户的密码是“123456“(当然这样的密码也没有安全性可言),经过MD5处理后即为:

“e10adc3949ba59abbe56e057f20f883e”。这样做的好处主要有以下两点:

1、预防网站运营内部人员知道你的密码,而做一些不道德的行为。因为有很多人为了方便将所有的密码都设置成一样的。

2、预防外部的攻击,如果你注册的网站被黑客进行攻击,得到该网站的一些数据,拿到的也是一堆经MD5处理后的字符串。

注意:MD5一般是不能够被反编译的。前提是你的密码不要设置的过于简单。这也是现在为什么越来越多的网站,对用户设置的密码有了越来越高的要求,不仅仅是密码长度要够长,而且密码里还要包括数字,大小字母,以及特殊字符串。

本篇文章将主要针对于在NODE.JS中如何对数据进行MD5加密:

直接在NODE中引入md5依赖包:

下载安装md5依赖包

npm install md5

md5加密实例:

var md5 =require("md5");
//设置加密字符串
var passWord="if(1==1){console.log('i love you')}";
console.log(md5(passWord));//a775657889f1ad6e19178c3cd734392b

当然只是单纯的对数据进行MD5加密也并不安全,最好在数据上加上一点盐料:

var md5 =require("md5");
//设置加密字符串
var passWord="if(1==1){console.log('i love you')}";
//在原来的字符串的基础上加上一些特殊文本,例如“zhangpeiyue.com"
console.log(md5(passWord+"zhangpeiyue.com"));//13c22698f52329433107e75b49330484

nodejs中的MD5加密方式:

第一种:

var crypto=require('crypto'); 
var md5=crypto.createHash("md5"); 
md5.update("abcdef"); 
var str=md5.digest('hex'); 
var s=str.toUpperCase(); //32位大写 
console.log(s);

第二种: 

var md5=require("md5") 
var str=md5("abcdef") 
//str=e80b5017098950fc58aad83c8c14978e 默认32位小写

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
登陆成功后自动计算秒数执行跳转
Jan 23 Javascript
jquery 删除字符串最后一个字符的方法解析
Feb 11 Javascript
使用GruntJS构建Web程序之构建篇
Jun 04 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
详解javascript中原始数据类型Null和Undefined
Dec 17 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
Javascript基础_嵌入图像的简单实现
Jun 14 Javascript
JS冒泡事件与事件捕获实例详解
Nov 25 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
Sep 03 jQuery
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 Javascript
js实现聊天对话框
Feb 08 Javascript
Vue性能优化的方法
Jul 30 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
May 16 #jQuery
vue keep-alive请求数据的方法示例
May 16 #Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
May 16 #Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
May 15 #Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 #Javascript
vue中keep-alive的用法及问题描述
May 15 #Javascript
react中使用swiper的具体方法
May 15 #Javascript
You might like
PHP的几个常用数字判断函数代码
2012/04/24 PHP
php实现图片添加水印功能
2014/02/13 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
PHP写日志的实现方法
2014/11/05 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP命令Command模式用法实例分析
2018/08/08 PHP
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
python 字典(dict)按键和值排序
2016/06/28 Python
Python 模板引擎的注入问题分析
2017/01/01 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
Tensorflow 实现释放内存
2020/02/03 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
Python编写单元测试代码实例
2020/09/10 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
工程概预算专业毕业生求职信
2013/10/04 职场文书
教师节活动主持词
2014/04/02 职场文书
《西门豹》教学反思
2016/02/23 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android