前后端數(shù)據(jù)交互安全

前后端數(shù)據(jù)交互安全

原因:因為http是無狀態(tài)協(xié)議, 信息傳輸是明文, 這會產生一個問題,那就是數(shù)據(jù)的安全, 如何防止數(shù)據(jù)被惡意截取修改等等
為了解決這個安全問題, 就有了數(shù)據(jù)加密

hash加密:MD5,SHA256

MD5和SHA256算法具有以下特點:

  • 壓縮性:任意長度的數(shù)據(jù)或者是任意大小的文件,算出的值的長度是固定的。
  • 抗修改性:對原數(shù)據(jù)進行任何改動,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別。
  • 強抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。

兩者的區(qū)別:

  • MD5值長度都是32位的十六進制數(shù),SHA256值長度是64位的十六進制數(shù),因而SHA256安全性更高一些。
  • MD5計算速度快,SHA256相對較慢

對稱加密:AES,DES

對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key)。對稱加密有很多種算法,由于它效率很高,所以被廣泛使用在很多加密協(xié)議的核心當中。

對稱加密通常使用的是相對較小的密鑰,一般小于256 bit。因為密鑰越大,加密越強,但加密與解密的過程越慢。如果你只用1 bit來做這個密鑰,那黑客們可以先試著用0來解密,不行的話就再用1解;但如果你的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。

缺點:用戶將密碼發(fā)給服務端時,密碼被攻擊方用非常規(guī)手段截取了,那攻擊方就可以輕松獲取到用戶信息,這就不能做到保密的目的,在用戶私人信息經常被泄密的時代,對稱加密方式的缺點顯得越來越突出。

非對稱加密:RSA,DSA

非對稱加密會產生兩個東西,公鑰(public key)和私鑰(private key),公鑰是由私鑰生成的,公開密鑰與私有密鑰是一對,如果用公開密鑰對數(shù)據(jù)進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進行加密,那么只有用對應的公開密鑰才能解密。

雖然非對稱加密很安全,但是和對稱加密比起來,它非常的慢,所以我們還是要用對稱加密來傳送消息,但對稱加密所使用的密鑰我們可以通過非對稱加密的方式發(fā)送出去。為了解釋這個過程,請看下面的例子:

(1) Alice需要在銀行的網站做一筆交易,她的瀏覽器首先生成了一個隨機數(shù)作為對稱密鑰。
(2) Alice的瀏覽器向銀行的網站請求公鑰。
(3) 銀行將公鑰發(fā)送給Alice。
(4) Alice的瀏覽器使用銀行的公鑰將自己的對稱密鑰加密。
(5) Alice的瀏覽器將加密后的對稱密鑰發(fā)送給銀行。
(6) 銀行使用私鑰解密得到Alice瀏覽器的對稱密鑰。
(7) Alice與銀行可以使用對稱密鑰來對溝通的內容進行加密與解密了。

關于對稱和非對稱加密的總結

  • 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由于需要將密鑰在網絡傳輸,所以安全性不高。
  • 非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
  • 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然后發(fā)送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然后雙方可以使用對稱加密來進行溝通。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容