md5介紹:MD5是一種常用的哈希算法,主要用于對(duì)一些重要數(shù)據(jù)進(jìn)行“簽名”,當(dāng)然這些數(shù)據(jù)可以是任意的。最終得到的“簽名”通常都是一個(gè)16或32位的十六進(jìn)制的字符串。
創(chuàng)新互聯(lián)公司云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過13年的服務(wù)器租用、達(dá)州托管服務(wù)器、云服務(wù)器、雅安服務(wù)器托管、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn),已先后獲得國家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、雅安服務(wù)器托管、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
實(shí)際工作開發(fā)中,是不會(huì)有人直接將密碼明文直接放到數(shù)據(jù)庫當(dāng)中的。因?yàn)檫@種做法是非常不安全的,一般都要對(duì)其進(jìn)行MD5加密!比如某用戶的密碼是“123456“(當(dāng)然這樣的密碼也沒有安全性可言),經(jīng)過MD5處理后即為:
“e10adc3949ba59abbe56e057f20f883e”。這樣做的好處主要有以下兩點(diǎn):
1、預(yù)防網(wǎng)站運(yùn)營內(nèi)部人員知道你的密碼,而做一些不道德的行為。因?yàn)橛泻芏嗳藶榱朔奖銓⑺械拿艽a都設(shè)置成一樣的。
2、預(yù)防外部的攻擊,如果你注冊(cè)的網(wǎng)站被黑客進(jìn)行攻擊,得到該網(wǎng)站的一些數(shù)據(jù),拿到的也是一堆經(jīng)MD5處理后的字符串。
注意:MD5一般是不能夠被反編譯的。前提是你的密碼不要設(shè)置的過于簡單。這也是現(xiàn)在為什么越來越多的網(wǎng)站,對(duì)用戶設(shè)置的密碼有了越來越高的要求,不僅僅是密碼長度要夠長,而且密碼里還要包括數(shù)字,大小字母,以及特殊字符串。
本篇文章將主要針對(duì)于在NODE.JS中如何對(duì)數(shù)據(jù)進(jìn)行MD5加密:
直接在NODE中引入md5依賴包:
下載安裝md5依賴包
npm install md5
md5加密實(shí)例:
var md5 =require("md5"); //設(shè)置加密字符串 var passWord="if(1==1){console.log('i love you')}"; console.log(md5(passWord));//a775657889f1ad6e19178c3cd734392b
當(dāng)然只是單純的對(duì)數(shù)據(jù)進(jìn)行MD5加密也并不安全,最好在數(shù)據(jù)上加上一點(diǎn)鹽料:
var md5 =require("md5"); //設(shè)置加密字符串 var passWord="if(1==1){console.log('i love you')}"; //在原來的字符串的基礎(chǔ)上加上一些特殊文本,例如“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 默認(rèn)32位小寫
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。