馬賽克、模糊、實心色塊:三種遮法的差別在哪裡
三種遮法在像素層面做的事完全不同:一種把資訊變粗、一種把資訊攤開、一種把資訊丟掉。這篇說明各自在什麼條件下會被讀回來,以及一條可以直接照著用的規則。
你要蓋掉截圖上的一串數字,工具給了你三個選擇:馬賽克、模糊、實心色塊。它們看起來都像是「把那塊弄得看不清楚」,但在像素層面做的是三件不同的事,而這個差別決定了對方有沒有機會把內容推回去。這篇要講的就是這三件事各自是什麼,以及什麼時候哪一種會出問題。
一句話的版本:實心色塊把資訊丟掉了,馬賽克和模糊把資訊變少了。「變少」在多數情況下等同於「沒了」,但不是永遠。下面把條件講清楚,因為網路上這個題目的兩種常見說法都是錯的——一種說「馬賽克一定能被還原」,一種說「打了碼就安全」。
三種做法在像素層面做了什麼
馬賽克(像素化)
把選取範圍切成一格一格的方塊,每一格取裡面所有像素的平均色,然後整格塗成那個顏色。所以一塊 40×40 的區域如果用 10 像素的格子,原本 1600 個像素只剩下 16 個數字。這是一種不可逆的降取樣:從 16 個平均值沒有辦法算回 1600 個原始像素,因為同一組平均值對應無限多種原圖。
但這句話有個陷阱。「算不回來」和「猜不出來」不是同一回事。如果被蓋掉的內容是一串已知格式的短字串——六位數驗證碼、車牌、固定字型的門牌號——攻擊者可以反過來做:把所有可能的候選內容用同樣的字型、同樣的位置渲染一遍,套上同樣的格子大小,然後比對哪一個產生的平均值最接近。這種方法有公開的實作,對細格子加上短字串是真的有效的。它需要的條件是:格子夠細、字型與排版已知、可能性的總數不大。
高斯模糊
每個像素被換成它周圍一圈像素的加權平均。它和馬賽克的關鍵差別是:模糊沒有丟掉像素數量,只是把資訊在空間上攤開了。原始的高頻細節被壓得很低,但它們的殘留仍然分布在整片模糊裡。這在數學上是一個卷積運算,而卷積是有反運算的——條件是你要知道模糊半徑,而且雜訊要夠小。
實務上,重度模糊加上匯出時的重新量化與壓縮,會把那點殘留徹底埋掉。輕度模糊就不一定。這也是為什麼「稍微糊一點就好,不然畫面很醜」是一個危險的取捨——你在權衡的兩端不是美觀和安全,是美觀和「還剩多少資訊在裡面」。
實心色塊
拿一種顏色把整塊換掉。底下的像素被覆寫,之後那塊區域裡剩下的資訊量是零。沒有統計手法、沒有暴力比對、沒有反卷積可以從一片純黑裡挖出東西,因為裡面真的什麼都沒有。它唯一的缺點是難看,以及它會誠實地告訴讀者「這裡有東西被蓋掉了」——但那本來就是事實。
「馬賽克可以被還原」這句話對到什麼程度
對,但條件比大部分轉貼這句話的人以為的嚴格。已知的成功案例幾乎都符合這三項:一,格子相對於字的大小來說太細,一個字被切成好幾格;二,內容是固定格式、可窮舉的短字串;三,字型與版面可以被重現。滿足這三項的時候,「打了碼的六位數字」和「沒打碼」的差距沒有你想的大。
反過來,一段被粗格馬賽克蓋掉的自由文字——一整行地址、一句對話——並且已經被壓平匯出成一張 JPEG,實務上沒有人推得回來。可能性的空間太大了,而剩下的線索太少。所以正確的說法不是「馬賽克是假的」,是「馬賽克對可猜的短內容不夠」。
順帶一提,還有一種「還原」其實根本不是還原:圖層沒有被壓平。有些工具把遮蔽存成一個獨立的圖層或註解物件,收到檔案的人只要拖開或關掉那一層,底下原封不動。PDF 上塗黑最常出這種事。這跟像素分析無關,它是檔案格式的問題,而且比像素分析常見得多。
一條可以直接照著用的規則
- 會痛的東西用實心:身分證字號、金融帳號、卡號、驗證碼、密碼、地址、任何有固定格式的數字。
- 不想讓人細看但外洩了也還好的東西用馬賽克:旁邊的對話、無關的檔名、桌布、其他人的暱稱。把格子拉粗一點。
- 模糊留給美觀重於安全的場合:例如做簡報時把背景虛化、讓讀者的視線集中在中間。不要拿它當安全手段。
- 不論用哪一種,遮的範圍都要包含欄位標籤,並且比你以為的再大一點。
- 匯出成一張壓平的圖片再送出。如果你的工具會保留可編輯的圖層,就等於沒遮。
一個比還原更常見的失敗
把重點放在「馬賽克會不會被破解」其實有點失焦。實際外洩的截圖裡,絕大多數不是被誰用演算法推回去的,是根本沒被蓋到:那串號碼在畫面右下角、在你沒注意的那條狀態列上、在你捲動時一閃而過的通知裡。你花十分鐘決定要用馬賽克還是實心,卻沒有花三十秒把整張圖放大看一遍——後者的期望效益高得多。
第二常見的失敗是遮了但沒遮完:號碼蓋了,旁邊的姓名沒蓋;訊息內容蓋了,頭貼沒蓋。遮蔽是一整套判斷,不是一個動作。
用 Marka 做這件事
Marka 把這三種方式都放在同一個工具下,用刷的:手指或滑鼠抹過去就蓋掉,不必先畫框再從選單挑模式。旁邊有一個強度滑桿——馬賽克的格子要多粗、模糊要多重,由你決定,而不是給你一個固定值——以及細、中、粗三段筆刷寬度。馬賽克模式免費,模糊與實心屬於一次性買斷的 Pro。
匯出的一律是壓平的圖:Mac 上是 PNG、JPEG 或 HEIC,iPhone 與 iPad 上是 PNG。裡面沒有可以剝掉的遮蔽圖層,也沒有可以拖走的註解物件,因為它從一開始就不是那種模型。整個運算在你的裝置上完成,沒有伺服器、沒有帳號、沒有上傳。
常見問題
所以馬賽克到底安不安全?
對「內容可猜、格式固定、格子又細」的短字串不安全,對粗格子蓋住的自由文字實務上安全。分界不在功能名稱,在被蓋掉的內容有幾種可能。要判斷不了的時候就用實心,那一種沒有條件。
模糊看起來比馬賽克自然,可以拿來遮個資嗎?
不建議。模糊沒有丟掉像素數量,只是把資訊攤開,輕度模糊留下的殘留比同等視覺程度的馬賽克更多。它適合用來讓背景退開、讓視線集中,不適合當安全手段。
實心色塊要用什麼顏色?
哪一種都行,資訊量都是零。實務上黑色或白色最不容易被誤讀成「這是畫面原本的一部分」,讀者一眼就知道那裡被刻意蓋掉了——而讓讀者知道這件事通常是好事。
在 PDF 上塗黑算不算遮蔽?
不算。用註解工具塗上去的黑是一個浮在文字層上的物件,底下的文字完全沒動,對方拖開或直接複製就拿到了。要遮 PDF,把那一頁輸出成圖片、在圖片上遮,再放回去。
截圖上傳到社群平台之後會被壓縮,這樣是不是更安全?
壓縮確實會再破壞一些殘留資訊,但不能拿它當防線。你不知道對方是從哪個管道拿到圖的,也不知道平台會不會保留一份高畫質原檔。安全性要建立在你送出去之前就已經沒有那些資訊,不是建立在後面某一段會幫你毀掉。
用 Marka 來做
Marka 是 iPhone、iPad 與 Mac 上的截圖標註 App。劃一下把不該看的蓋掉,用箭頭指住該看的,用序號標出步驟,裁成你要發的比例,然後送出。全程在裝置本機處理——不上傳、免註冊、無追蹤,安裝檔 2.4 MB。開啟圖片、裁切、馬賽克筆刷與匯出都免費;Pro 是一次性買斷,三端通用。