歡迎來到數據交換的世界!
在本章中,我們將探討電腦如何高效且安全地傳送和接收資訊。試想一下,當你在 WhatsApp 發送照片或登入電郵時,這些數據是如何以極快的速度傳輸,而我們又是如何確保其他人無法讀取這些內容的呢?我們是透過壓縮 (Compression)、加密 (Encryption) 和 雜湊 (Hashing) 來實現的,這三者正是數據交換的「三巨頭」!
1. 壓縮:讓檔案變小
壓縮是減少檔案大小的過程。這一點非常重要,因為較小的檔案不僅佔用較少的儲存空間,在網際網絡上的傳輸速度也更快。
有損 (Lossy) 與無損 (Lossless) 壓縮
壓縮檔案主要有兩種方式:
1. 有損壓縮 (Lossy Compression):這種方法會永久刪除部分數據以縮小檔案。它主要針對人類視覺或聽覺難以察覺的部分進行移除。
例子:JPEG 圖像或 MP3 音樂檔案。如果你對一首歌進行過度壓縮,聲音聽起來會變得「空洞」,因為那些被刪除的數據已經永遠消失了!
2. 無損壓縮 (Lossless Compression):這種方法可以在不丟失任何原始數據的情況下縮小檔案。當你將檔案「解壓縮」時,它與原始檔案完全相同。
例子:ZIP 檔案或文字文件。你肯定不想對電腦程式使用有損壓縮——因為丟失哪怕僅僅一行代碼,程式都無法運行!
記憶小撇步:將 Lossy 理解為「丟失 (Losing)」數據,將 Lossless 理解為「Loss-Less」(沒有丟失!)。
無損壓縮技術:RLE 與字典編碼
電腦如何在不丟失數據的情況下進行壓縮?以下是你需要掌握的兩種方法:
行程長度編碼 (Run-Length Encoding, RLE)
RLE 會尋找連續重複的數據。它不會儲存每一個項目,而是儲存該項目一次,然後加上一個數字來表示它重複出現了多少次。
例子:想像圖像中的一行像素:
WWWWWWBBBB
RLE 不會儲存 10 個獨立的字母,而是儲存為:
6W4B(6 個白色,4 個黑色)。
字典編碼 (Dictionary Coding)
這就像使用快捷方式。電腦會建立一個包含常用模式或單詞的「字典」,並用簡短的二進制代碼或索引編號來取代它們。
例子:在一份長文件中,「Computer」這個詞出現了 100 次。字典記錄:1 = Computer。每次出現「Computer」時,電腦只需寫入 1。這能節省大量空間!
快速複習:
• 有損:檔案最小,但數據會丟失。
• 無損:品質完美,但檔案比有損壓縮大。
• RLE:最適合數據中包含大量連續重複的情況。
• 字典:最適合數據中包含常見模式的情況(如文字)。
2. 加密:守護秘密
加密是將數據擾亂,使其除持有「密鑰」解鎖的人外,任何人都無法理解的過程。這就像是編寫密碼訊息的數碼版本。
對稱加密 (Symmetric Encryption)
在對稱加密中,使用同一把密鑰來加密(鎖上)和解密(打開)數據。
比喻:這就像一把實體家門鑰匙。你離開時用同一把鑰匙鎖門,回來時也用同一把鑰匙開門。
問題:如果你想發送秘密給朋友,你必須先找到一種方法將鑰匙傳送給對方。如果黑客在傳輸過程中竊取了鑰匙,他們就能讀取你所有的訊息!
非對稱加密 (Asymmetric Encryption / Public Key Encryption)
這種方式聰明得多!它使用一對密鑰:
1. 公鑰 (Public Key):所有人都可以看到。它用於加密數據。
2. 私鑰 (Private Key):由擁有人秘密保管。它是唯一能解密數據的鑰匙。
比喻:想像一個郵箱。公鑰是郵箱前面的投遞口——任何人都可以投遞郵件。私鑰是屋主手中的鑰匙——只有屋主能打開箱子閱讀郵件。
別擔心,如果這聽起來有點複雜!只要記住:你用公鑰鎖上,但只有私鑰能打開。
關鍵點:對稱加密速度快,但分享密鑰有風險;非對稱加密對網際網絡來說更安全,因為你永遠不需要分享你的秘密私鑰。
3. 雜湊:單向街道
雜湊常被誤認為是加密,但兩者有很大不同。雜湊接收一個輸入,並將其轉換為固定長度的字符序列(即「雜湊值」)。
黃金法則:雜湊是一個單向過程。你可以將密碼轉換為雜湊值,但你永遠無法將雜湊值還原回原始密碼。
雜湊的用途
1. 儲存密碼:公司不會儲存你的實際密碼,而是儲存密碼的雜湊值。當你登入時,系統會對你的輸入進行雜湊處理,如果兩個雜湊值匹配,你就成功登入!如果黑客竊取了資料庫,他們看到的只是一堆無用的雜湊值,而不是你的真實密碼。
2. 校驗和 (Checksums):當你下載大型檔案時,會使用雜湊值來檢查檔案是否損壞。如果檔案中哪怕只有一個位元被更改,雜湊值看起來也會完全不同!
3. 雜湊表 (Hash Tables):用於數據結構以即時尋找資訊。電腦不需要搜尋整個列表,而是直接跳轉到由雜湊值計算出的位置。
你知道嗎?即使你對一本 1,000 頁的巨著進行雜湊,產生的雜湊值長度(例如 64 個字符)通常與對單詞「Cat」進行雜湊時一樣短!
總結清單
• 壓縮:縮小檔案。分為有損(數據丟失)或無損(品質完美)。
• RLE:計算重複次數(例如用 5A 代替 AAAAA)。
• 字典編碼:用短代碼替換常見模式。
• 對稱加密:一把鑰匙包辦所有工作。
• 非對稱加密:公鑰加密,私鑰解密。
• 雜湊:單向轉換。用於密碼儲存和錯誤檢查。
常見誤區:千萬別說雜湊是「加密」密碼。加密的目的是為了能夠還原(解密),而雜湊則是永久性的轉換!