1、背景
實(shí)現(xiàn)所有網(wǎng)站都有的會員注冊、會員登錄功能。當(dāng)實(shí)現(xiàn)時,需要保證數(shù)據(jù)在傳輸過程中的安全,需要把會員提交的密碼進(jìn)行rsa加密,當(dāng)會員登錄需要自動登錄時,還需要對生成的cookies進(jìn)行aes密鑰的rsa加密解密。
2、實(shí)現(xiàn)過程
1》、會員注冊功能
會員填寫手機(jī)號碼,輸入圖形驗(yàn)證碼后,獲取手機(jī)驗(yàn)證碼,填寫手機(jī)驗(yàn)證碼后,輸入2次會員密碼,然后提交注冊,在提交前,使用js,進(jìn)行rsa獲取到公鑰,對會員的2次密碼都加密傳輸,然后在后臺進(jìn)行rsa解密,再進(jìn)行md5的加密,最后創(chuàng)建會員信息,存入db,直接轉(zhuǎn)成登錄狀態(tài)。
2》、會員登錄功能
會員填寫手機(jī)號碼,輸入密碼后,勾選7天內(nèi),或者30天內(nèi)自動登錄,這時,就會使用js獲取公鑰,對提交的密碼進(jìn)行rsa加密傳輸,然后在后臺進(jìn)行rsa解密,再使用md5進(jìn)行比較db中的密碼,如果發(fā)現(xiàn)需要自動登錄,對存入cookies的內(nèi)容進(jìn)行加密,使用的是當(dāng)前用戶的手機(jī)號碼以及當(dāng)前用戶最后一次登錄的時間點(diǎn)進(jìn)行特征碼比對,只有比對成功,才能為該會員提供自動登錄功能,否則登錄失敗,并跳轉(zhuǎn)到會員登錄頁面。
3、結(jié)論
rsa結(jié)合aes的加密解密方式,能夠比較安全的對所傳輸?shù)膬?nèi)容進(jìn)行加密解密,這個方案,也適合使用在對外提供app的api接口和http接口時的數(shù)據(jù)傳輸上,都可以對所傳輸?shù)膮?shù)內(nèi)容或者返回的內(nèi)容進(jìn)行加密解密。所以rsa雖然耗時,但只要把密鑰進(jìn)行aes加密,內(nèi)容通過aes加密,就可以很好的減少rsa傳遞內(nèi)容過多的消耗問題。
4、案例