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