最開始網(wǎng)絡(luò)請(qǐng)求都是http請(qǐng)求,http請(qǐng)求速度快,但是所有的請(qǐng)求都是明文的,這就導(dǎo)致黑客可以通過網(wǎng)絡(luò)嗅探(抓包)直接獲取用戶的敏感信息,比方說登錄名、登陸密碼、銀行卡號(hào)等。
隨著網(wǎng)絡(luò)的迅速發(fā)展,大家對(duì)安全越來越注重,因此出現(xiàn)了基于http的https請(qǐng)求。https請(qǐng)求通過對(duì)稱加密、非對(duì)稱加密、證書等方法進(jìn)行數(shù)據(jù)加密,這樣黑客即便獲取到了網(wǎng)絡(luò)傳輸?shù)膱?bào)文,也無(wú)法知道是什么。
想要理解https,則先要理解一些基本的密碼學(xué)概念。
明文:未被加密的原始數(shù)據(jù)。
例如:你好
密文:明文被某種加密算法加密之后,會(huì)變成密文,從而確保原始數(shù)據(jù)的安全。密文也可以被解密,得到原始的明文。
例如:*****
密鑰:密鑰可以簡(jiǎn)單理解為一個(gè)參數(shù),它在明文轉(zhuǎn)換為密文或?qū)⒚芪霓D(zhuǎn)換為明文的算法中輸入。
例如:#$
加密示意:
你好+加密算法+#$ =*****
加密分為對(duì)稱加密和非對(duì)稱加密兩種。
對(duì)稱加密:又叫私鑰加密,即信息的發(fā)送方和接收方使用同一個(gè)密鑰去加密和解密數(shù)據(jù),因此稱為“對(duì)稱”。對(duì)稱加密的特點(diǎn)是算法公開、加密和解密速度快,適合于對(duì)大數(shù)據(jù)量進(jìn)行加密。
由于對(duì)稱加密的算法公開,所以一旦密鑰被泄露,那么整個(gè)通信就會(huì)被破解,所以對(duì)稱加密的缺點(diǎn)是密鑰安全管理困難。
加密過程:明文+加密算法+私鑰=>密文
解密過程:密文+解密算法+私鑰=>明文
非對(duì)稱加密:也叫做公鑰加密。非對(duì)稱加密使用一對(duì)密鑰,即公鑰和私鑰,且二者成對(duì)出現(xiàn)。私鑰自己保存,不能對(duì)外泄露。公鑰指的是公共的密鑰,任何人都可以獲得。用公鑰或私鑰中的任何一個(gè)進(jìn)行加密,用另一個(gè)進(jìn)行解密。
由于加密和解密使用了兩個(gè)不同的密鑰,這就是非對(duì)稱加密“非對(duì)稱”的原因。非對(duì)稱加密與對(duì)稱加密相比,其安全性更好,但是加密和解密花費(fèi)時(shí)間長(zhǎng)、速度慢,只適合對(duì)少量數(shù)據(jù)進(jìn)行加密。
被公鑰加密過的密文只能被私鑰解密,過程如下:
明文+加密算法+公鑰=>密文,密文+解密算法+私鑰=>明文
被私鑰加密過的密文只能被公鑰解密,過程如下:
明文+加密算法+私鑰=>密文,密文+解密算法+公鑰=>明文
由于兩個(gè)加密算法的特點(diǎn)不同,https請(qǐng)求綜合應(yīng)用了這兩種算法。