NodeJS實(shí)現(xiàn)不可逆加密與密碼保存
來源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-27 19:59:06
NodeJS實(shí)現(xiàn)不可逆加密與密碼保存
NodeJS實(shí)現(xiàn)不可逆加密與密碼保存:在應(yīng)用中,常常有要將用戶的密碼加密儲(chǔ)存的需要。以明文保存密碼有個(gè)缺點(diǎn):一旦泄漏時(shí)容易造成極大的損失,可能會(huì)連帶其他網(wǎng)站的用戶、密碼也造成損失(因?yàn)榇蠖鄶?shù)用戶在多數(shù)網(wǎng)站使用相同的賬號(hào)與密碼)。這個(gè)泄漏可能來自于兩方面:駭客入侵與運(yùn)維人員監(jiān)守自
導(dǎo)讀NodeJS實(shí)現(xiàn)不可逆加密與密碼保存:在應(yīng)用中,常常有要將用戶的密碼加密儲(chǔ)存的需要。以明文保存密碼有個(gè)缺點(diǎn):一旦泄漏時(shí)容易造成極大的損失,可能會(huì)連帶其他網(wǎng)站的用戶、密碼也造成損失(因?yàn)榇蠖鄶?shù)用戶在多數(shù)網(wǎng)站使用相同的賬號(hào)與密碼)。這個(gè)泄漏可能來自于兩方面:駭客入侵與運(yùn)維人員監(jiān)守自

在應(yīng)用中,常常有要將用戶的密碼加密儲(chǔ)存的需要。以明文保存密碼有個(gè)缺點(diǎn):一旦泄漏時(shí)容易造成極大的損失,可能會(huì)連帶其他網(wǎng)站的用戶、密碼也造成損失(因?yàn)榇蠖鄶?shù)用戶在多數(shù)網(wǎng)站使用相同的賬號(hào)與密碼)。
這個(gè)泄漏可能來自于兩方面:駭客入侵與運(yùn)維人員監(jiān)守自盜。
為了防止在密碼明文泄漏,我們需要對(duì)在數(shù)據(jù)庫中保存的密碼字段進(jìn)行不可逆加密。準(zhǔn)確地說,是加密以后再保存到數(shù)據(jù)庫中。
常用的不可逆加密算法有MD5與SHA-1。
在NodeJS中,它們的使用極為簡便,直接使用官方內(nèi)建的 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');
// '7c4a8d09ca3762af61e59520943dc294f41b'
當(dāng)用戶注冊(cè)時(shí),將用戶提交的密碼先不可逆加密,然后將密文保存在數(shù)據(jù)庫內(nèi)。
當(dāng)用戶登錄時(shí),將用戶提交的密碼先以相同方式加密,然后與數(shù)據(jù)庫中的密文比對(duì),來判斷密碼的正誤。
理論上有無數(shù)個(gè)密碼對(duì)應(yīng)同一個(gè)Hash值,不過不用過于擔(dān)心被撞表的風(fēng)險(xiǎn),因?yàn)橄啾戎拢愕腤eb服務(wù)器與數(shù)據(jù)庫可能會(huì)在泛洪攻擊中先行崩潰。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
NodeJS實(shí)現(xiàn)不可逆加密與密碼保存
NodeJS實(shí)現(xiàn)不可逆加密與密碼保存:在應(yīng)用中,常常有要將用戶的密碼加密儲(chǔ)存的需要。以明文保存密碼有個(gè)缺點(diǎn):一旦泄漏時(shí)容易造成極大的損失,可能會(huì)連帶其他網(wǎng)站的用戶、密碼也造成損失(因?yàn)榇蠖鄶?shù)用戶在多數(shù)網(wǎng)站使用相同的賬號(hào)與密碼)。這個(gè)泄漏可能來自于兩方面:駭客入侵與運(yùn)維人員監(jiān)守自