在用戶實際的註冊和登錄過程當中,大部分用戶的密碼是通用的,好比QQ密碼和微博密碼一致,工行和建行的取款密碼一致,如果用戶的登陸密碼泄露,不法分子會拿着用戶的密碼去嘗試登錄用戶的其餘服務帳號,極可能形成嚴重的後果。
因此爲了防止這種狀況發生,咱們須要對密碼進行加密處理,這裏採用的是MD5存儲加密方式。
什麼是MD5加密
MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest開發出來,經MD二、MD3和MD4發展而來。 MD5加密的特性:算法
- MD5加密後輸出的是
32位長度的字符串
- 相同的內容使用MD5加密後,獲得的內容是一致的
- MD5加密後的字符串是沒法反向解密的(惟一的破解方式是暴力碰撞破解)
- 爲了防止暴力碰撞破解,咱們能夠對須要加密的內容,進行加鹽處理
- 什麼是加鹽處理:就是在須要加密的文本內容,和一串長且複雜的文本進行拼接,這樣就能防止加密後的MD5值被暴力碰撞破解。
在Express中使用MD5加密(Node.js)
- 運行如下命令安裝MD5加密模塊:
npm install blueimp-md5 -S
- 使用方式:
var hash = md5("value", "key");