問題
數(shù)據(jù)庫中保存的密碼肯定是加密的,那么用redis緩存了用戶數(shù)據(jù)后。登錄時校驗用戶信息時,就要對登錄的密碼進行相同的加密處理。這篇文章,主要了解一些將要用到的加密或者可能用到的加密和解密方式。
場景
- 1、考慮普通的加密,用md5直接加密原始密碼
簡單,方便,但是容易識別,安全性不是很高。 - 2、用md5處理加鹽的原始密碼
比較簡單,方便,但是獲得比較多的加密后的密碼,破解了原始密碼所含的鹽,也就沒有安全性可言了。 - 3、那么用更復(fù)雜的方式呢
破解是更難了,但是算法對性能和時間的消耗是否值得這樣去做?
我的想法是,為了安全,犧牲一些性能是值得的。對于密碼的加密方式,我的想法是,動靜態(tài)的鹽,加上原密碼用某種加密方式加密后的密文,再進行加密。而且根據(jù)原密碼的某些特性,選擇不同的加密方式。此處就不多說了。
加密方法的使用
- 使用lua的md5加密api
ngx.say(ngx.md5(ngx.var.xxx))
目前的階段,我的目標(biāo)是打通react+nginx+lua的登錄的實現(xiàn)原理,這里就不在對加密繼續(xù)深入了,等前后端打通,將來會寫一篇深入lua加密解密的文章。在此之前,各位看官可以在網(wǎng)上找找資料。