HTTP 和 HTTPS 的區別

2021-10-10 04:08:25 字數 1692 閱讀 3457

從上圖可以看到,http和https協議底層都是基於tcp的協議,只是https協議中間多了一層ssl或者tls,因此,很簡單,https就是http協議加上ssl/tls。tls是ssl的公升級版,它們的作用都是進行加密的連線。

特點:靠乙個金鑰來加密資料,使用相同的乙個金鑰來解密資料。首先使用者需要把自己的一把鑰匙給送給伺服器,使用者用這把鑰匙加密資料,然後伺服器待會拿這把相同的鑰匙去解密使用者接下來傳送的資料。

那麼,這樣的加密演算法有什麼不妥呢?首先,如果使用者擁有相同的金鑰的話,我的金鑰能解你的資料,你的金鑰能解密我的資料,這樣,別有用心的使用者就能擷取和破解你的資料了,所以,每個使用者都必須擁有一把只屬於自己的金鑰,那每個使用者的金鑰都要先發給伺服器,那有5000萬個使用者伺服器就有5000萬把金鑰,這明顯給伺服器增加了太多太多的負荷,這是顯然不符合我們的需求的;其次,如果在客戶端第一次傳送金鑰給伺服器的時候,此次傳送是明文傳送的,黑客此刻在中間擷取到了我們的金鑰,那接下來的資料黑客也能破解掉,這明顯也是不符合我們的需求。但是,該加密方式計算量小,加密和解密的速度比較快,適合加密比較大的資料。好了,講完對稱加密,我們知道對稱加密存在著一些缺點,由此產生了第二種的加密方式,就是非對稱加密。

特點:有乙個公鑰和乙個私鑰,公鑰加密只能私鑰解密,私鑰加密只能公鑰解密。因為解密和加密使用不同的鑰匙,所以稱為非對稱加密。公鑰和私鑰都放在伺服器上,公鑰是可以隨便傳輸的,私鑰是絕對不會暴露的,資料傳輸是安全的。

說了這麼多抽象的東東,我們看乙個具體的例子。

首先伺服器端把公鑰傳給客戶端,客戶端拿到公鑰後對資料進行加密,然後客戶端傳送使用公鑰加密過的資料到伺服器,伺服器收到加密後的資料後使用私鑰對資料進行解密。

此刻,黑客即使拿到公鑰和公鑰加密後的資料,也沒法解密,因為公鑰加密的資料公鑰是解不了的,只有私鑰能解。

假如伺服器端存有乙個公鑰777和乙個私鑰888,首先,瀏覽器發出乙個https請求,如伺服器端響應請求,返回乙個ssl數字證書給客戶端,ssl數字證書包括了公鑰和伺服器的身份標識資訊,客戶端收到ssl數字證書之後,驗證該數字證書是否有效,如無效,則瀏覽器會發出不安全警告,如有效,就會先生成乙個隨機碼如6666,然後使用公鑰777對這個隨機碼進行加密,然後傳輸該加密後的隨機碼到伺服器,伺服器使用私鑰888進行解密,得到客戶端的隨機碼為6666,以上該過程就是我們說的非對稱加密。此時,客戶端和伺服器都同時擁有了該隨機碼6666,然後,把這個隨機碼6666用作對稱加密的金鑰,用金鑰6666對username和password的資訊進行加密,傳送到伺服器端,伺服器端同樣使用相同的金鑰6666對資料進行解密,最後得到username和password的資訊。以上為整個https加密、解密及驗證的過程。

本文從http的不安全引出https,https就是在http的基礎上增加了一層ssl的加密協議,然後進一步講述了兩種不同的加密方式,分別是對稱加密和非對稱加密,然後講述了兩者的不同及各自的優缺點,https綜合了兩種加密方式,最後,給出了完整的https加密、解密及驗證過程。

HTTPS和HTTP的區別

https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...

HTTPS和HTTP的區別

https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...

http和https的區別

在url前加https 字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。http的連線很簡單,是無狀態的...