你所需要知道的關于加密的事
昨天股票漲的好,大家看文章的心情也很好啊,看到昨日閱讀量創下新高,今日提筆也是感到壓力山大啊,產品和開發之間總有說不完的話題,想必好多產品也在悄悄掰著指頭數著開發惹惱產品的N句話,好了,這個話題我們改天接著聊,今天還是繼續說說技術上的事——加密。
產品童鞋應該經常會從開發那里聽到什么密鑰,公鑰,私鑰什么的,雖然可能不太清楚具體是神馬,但是應該都知道是用來加密傳輸的信息的,如果知道了加密的原理,就不會被這看似神秘的詞兒給繞暈了,被忽悠的概略也會大大降低。
加密這個東西由來已久,例如古代的藏頭詩就是文藝氣息爆表的加密技術,作者想真正表達的文字信息被按照一定規則放在詩句的各個位置,我們可以把這個規則叫做加密算法。如果大家都不知道藏頭詩的加密算法,那寫首藏頭詩把皇帝罵一通,那也沒啥可怕的,事實上這樣做的人都掛了,原因當然顯而易見,加密算法被破解了唄,誰不知道你在說啥啊!
從上面的例子可以看到現代加密的雛形,對明文信息按照一定的算法進行打亂重排,如果能將加密算法完美隱藏起來,那么這個加密就是安全的,但是這只是如果,事實上這種將加密算法隱藏起來的做法是不安全的,一旦算法被泄漏,加密就毫無意義,如果要繼續加密就得設計新的算法,這個成本實在太高,所以現代的加密技術則包含另外一個元素——密鑰。
密鑰是啥呢,其實就是一堆參數,現代信息的加密就是把這堆參數跟明文信息按照一定的算法混到一起,把原始信息整的像亂碼一樣。重新設計加密算法不是成本高嗎,與其偷偷摸摸的,不如公開加密算法,讓大家都來用好了,但是加解密雙方得保管好密鑰哦。不過即使不幸密鑰被泄漏了,重新整個密鑰就好了,這比重新設計算法可容易多了。
說完加密技術中加密算法和密鑰這兩大元素,我們再來看看常見的兩種加密:對稱加密和非對稱加密。對稱加密目前比較流行的是AES和3DES,在這種加密方式下,加解密雙方的密鑰是一樣的,雙方都用這個密鑰來加密,也用這個密鑰來解密的,簡單粗暴,如果加密要求不是那么高的話,用對稱加密就可以了,因為加密很大程度上是為了避免私密信息在網絡上裸奔,信息在網絡上傳輸通過的節點實在太多,很容易被人中途攔截,雖然對稱加密也是能破解的,不過票價還是偏高,而且破解出來也不一定有啥值回票價的信息,所以也還算比較安全。
如果有更高的加密要求,就要用到非對稱加密了,比較流行的是RSA加密。為啥又要搞個非對稱加密呢?這里先從對稱加密的弊端說起,對稱加密的密鑰只有一個,加密解密都用它,這就意味著密鑰會被多方知曉,密鑰泄漏的可能性也越大,一旦泄漏,任何人都能對數據進行加解密,如果進行多方加密通訊,又不想相同密鑰被太多人知道,則需要針對不同的通訊方生成不同的密鑰,既復雜又不環保。非對稱加密則能比較好的解決這個問題,非對稱加密的密鑰是一對,分別叫做公鑰和私鑰,這兩個密鑰是不一樣的,而且不可能根據其中一個密鑰推導出另一個密鑰的。公鑰加密的數據只有私鑰能解開,私鑰加密的數據只有公鑰能解開。例如A創建了一對非對稱加密的密鑰,A對外公開了其中一個密鑰稱為公鑰,A自己保有的另一個密鑰稱為私鑰,這樣做的好處是:和A通訊的對象不論一個還是多個,都只需要使用一個公鑰加密就好了,而且即使是公鑰加密的數據用公鑰也是解密不了的,而私鑰只有A自己有,這樣就不用太擔心私鑰泄漏的問題了。
非對稱加密的另一個應用場景是身份認證,如果A擁有私鑰,那么A只要聲明公鑰是自己發布的,那么如果接收方B收到了一份自稱是A發的密文時,B只需要將A發布的公鑰嘗試解密一次就可以知道了,如果解開了,那么就可以確認是A發的密文,沒解開自然就不是嘍。平時我們聽到的啥數字簽名,數字證書啥的用來驗證身份的其實就是這玩意兒。
最后,握住你胸前的Token卡,輕哼小龍人的主題曲……
#專欄作家#
給產品經理講技術,微信公眾號(pm_teacher),人人都是產品經理專欄作家。資深程序猿,專注客戶端開發若干年,對前端、后臺技術略懂,熱衷于對新的科技領域的探索。
本文原創發布于人人都是產品經理,未經許可,不得轉載。
- 目前還沒評論,等你發揮!