鍍金池/ 問答/Java  Linux  網(wǎng)絡(luò)安全  HTML/ 目前主流靠譜的登錄密碼加密流程是怎樣的?

目前主流靠譜的登錄密碼加密流程是怎樣的?

對于用戶登錄的密碼驗(yàn)證的流程怎樣靠譜?(不討論關(guān)于https的通道加密)
1.前端明文傳遞密碼到后端進(jìn)行加密處理,對處理后的密文與數(shù)據(jù)庫做對比返回結(jié)果;
2.前端對密碼做加密處理傳遞密文到后端,后端對密文與數(shù)據(jù)庫做對比返回結(jié)果;
3.前端對密碼做加密處理傳遞密文到后端,后端解密后得到明文與數(shù)據(jù)庫做對比返回結(jié)果;
4.前端對密碼做加密處理傳遞密文1到后端,后端解密后再對明文做其他加密處理,后密文2與數(shù)據(jù)庫做對比返回結(jié)果;
5.前端對密碼做加密處理傳遞密文1到后端,后端再對密文1做二次加密處理,后密文2與數(shù)據(jù)庫做對比返回結(jié)果;
6.其他恰當(dāng)方式

考慮關(guān)于數(shù)據(jù)庫泄露,數(shù)據(jù)傳輸過程中被截獲等情景;
求詳細(xì)流程;
另外請附帶加密使用的算法,如RSA,MD5等.

回答
編輯回答
巷尾

前對對密碼是不會(huì)加密的,基本都是sha256(salt + password)存儲(chǔ)在數(shù)據(jù)庫,每次前端傳password過來,后端那算出來的哈希值和數(shù)據(jù)庫的值進(jìn)行對比驗(yàn)證

而且基于https傳輸秘鑰沒有問題,即使中間人攻擊,拿到的也是密文

2018年3月17日 13:51
編輯回答
尐飯團(tuán)

前端加鹽加密發(fā)送后端,后端繼續(xù)加鹽加密與數(shù)據(jù)庫進(jìn)行匹配。
不需要解密。

2017年10月24日 02:18
編輯回答
維他命

如果中間可以截獲請求數(shù)據(jù),那你前端只針對密碼做的任何加密都相當(dāng)于做的無用功。因?yàn)槟愫蠖藚^(qū)分不出來此請求是真正前端發(fā)送還是被截獲之后的二次請求。
如果后端針對前端傳過來的數(shù)據(jù)不做任何處理,直接比對數(shù)據(jù)庫,那你數(shù)據(jù)泄露了之后就相當(dāng)于是裸奔了。

所以,后端加密算法是一定要有的,而且是數(shù)據(jù)庫里存儲(chǔ)的是加密之后的數(shù)據(jù),對比的是傳入password加密之后和數(shù)據(jù)庫做對比。
至于前端,如果前端代碼不被破解的話,倒是可以做一次可逆加密(des,aes),把password加密后傳給后臺(tái),后臺(tái)進(jìn)行解密得到password原數(shù)據(jù),然后在按照固定算法(不可逆)得到加密后的數(shù)據(jù),與數(shù)據(jù)庫進(jìn)行對比。這樣子最少前端代碼破解不了,他們截取之后拿到的也是可逆加密之后的密文。

2017年10月4日 05:07
編輯回答
老梗

有能力的,自己寫一套加密算法,在前端對密碼進(jìn)行加密,加密過程的js打包/代碼混淆,盡可能讓人不能看出來算法。后端根據(jù)約定的算法解密。
或者非對稱加密的方式。后端提供一個(gè)接口動(dòng)態(tài)返回一個(gè)公鑰到前端,前端根據(jù)公鑰進(jìn)行加密。后端收到之后,利用私鑰解密。
你可以參考愛奇藝、優(yōu)酷這類網(wǎng)站的登錄流程。他們就是對密碼進(jìn)行加密之后,傳輸?shù)摹?br>后端肯定是需要解密的,否則前端加密就沒有任何意義了。

2017年1月21日 10:59