小朋友都能看懂的 HTTPS 之加密算法
說(shuō)出來(lái)你可能不信,密鑰這兩個(gè)字的規(guī)范讀音竟然是【mì yuè】,聽(tīng)起來(lái)像蜜月,哈哈。不過(guò),在密碼學(xué)的語(yǔ)境下,讀作【 mì yào】的應(yīng)該更多吧。扯遠(yuǎn)了,這集我們聊聊 HTTPS 里的重要組成部分,就是密鑰和加密算法。
加密算法有兩類(lèi):對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密。
顧名思義,對(duì)稱(chēng)加密算法里,加密和解密用的是同一個(gè)密鑰。
狗子這次學(xué)聰明了,發(fā)消息前先加密了。
你可以把這個(gè)加密過(guò)程理解成把消息放進(jìn)一個(gè)上了鎖的盒子里。
有鑰匙(密鑰)的人就能打開(kāi)這個(gè)盒子。
這樣就能保證,沒(méi)有這把鑰匙的人就打不開(kāi)。
菜鳥(niǎo)收到這個(gè)盒子后,用他們約定的鑰匙(密鑰)打開(kāi)盒子閱讀消息。
需要注意的是,密鑰必須保密,不能以明文形式共享。
實(shí)際上,沒(méi)有密鑰解密的話(huà),看到的是一堆毫無(wú)意義的字符:
某個(gè)加密算法生成的密文可能是這樣的:
經(jīng)過(guò)多次轉(zhuǎn)換,文本變得越來(lái)越難以識(shí)別。
解密也要經(jīng)過(guò)這些步驟,只不過(guò)是反過(guò)來(lái)的:
加密使用的密鑰混入了消息中,因此即使你知道加密算法,沒(méi)有密鑰也無(wú)法解開(kāi)密文。
密鑰可能長(zhǎng)這樣:
對(duì)稱(chēng)密鑰雖好,但是有個(gè)問(wèn)題:怎么安全地分享給別人?
傳送密鑰的時(shí)候需要特別小心,一不留神就會(huì)被偷窺。
因此,出現(xiàn)了另一種加密算法:非對(duì)稱(chēng)加密。
跟對(duì)稱(chēng)加密的區(qū)別是,非對(duì)稱(chēng)加密需要兩個(gè)成對(duì)的密鑰。
公鑰就有意思了,你可以隨便共享,發(fā)在網(wǎng)上、寫(xiě)在紙上、紋在身上……隨你便,反正是公開(kāi)的!
于是狗子就把自己的公鑰發(fā)給了菜鳥(niǎo)小姐姐。
也就是說(shuō),菜鳥(niǎo)把消息裝進(jìn)了盒子,用狗子的公鑰鎖上了。
敲黑板劃重點(diǎn):只有跟公鑰配對(duì)的私鑰才能解密。
本文轉(zhuǎn)載自微信公眾號(hào)「1024譯站」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系1024譯站公眾號(hào)。