昨天作了登錄模塊,接觸了md5&RSA加密。有點意思,talk is cheap,show me the code!前端
- 爲何要加密
- 前端加密的方式
- 後臺如何解密
1 爲何要加密?算法
很簡單,防止密碼明文傳輸。 如不作加密的話,在控制檯是能夠直接查看到帳密傳參的,毫無安全性可言。數據庫
2 前端加密的方式?安全
2.0 哈希算法與加密函數
上圖中咱們能夠明顯看到哈希和加密是兩個不一樣的東西,主要有兩點不一樣:性能
哈希算法一般用於數據摘要,生成相同長度的文本。而加密算法生成的密文長度與明文長度有關。
哈希算法是不可逆的,而加密算法是可逆的。加密
在加密算法中又分爲對稱加密(symmetric encryption)和非對稱加密(asymmetric encryption)。非對稱加密算法中,加密密鑰和解密密鑰是不一樣的,分爲私鑰和公鑰,咱們熟知的 RSA 就是一種非對稱加密算法。而對稱加密中,加密和解密都是用同一個密鑰,如 AES / DES。從性能上來講,非對稱加密相對於對稱加密要慢不少。spa
在 HTTPS 中,認證過程使用了非對稱加密算法,非認證過程當中使用了對稱加密算法。3d
哈希算法的特性code
1)單向不可逆
哈希(Hash)算法是一種單向密碼體制,即只有加密過程,沒有解密過程。
2)可重複性
相同輸入通過同一哈希函數獲得相同散列值,但並不是散列值相同則輸入結果相同。
意思就是 前端拿哈希把密碼加密後傳輸給後臺,可是由於它是不可逆的,因此後臺也沒法解密,因此就將它儲存進數據庫,可是這樣的安全性比較低
2.1 md5方式
2.2 RSA方式
r