ToolAct工具行動

檔案 MD5 修改器

通過追加隨機資料修改檔案 MD5 值,支援批次處理

上傳檔案

拖曳檔案到此處

最多選擇 5 個檔案,已選擇 0 個

重要提示

此工具通過在檔案末尾追加隨機位元組來改變檔案的 MD5 值。修改後的檔案內容會略有變化,但通常不影響正常使用。對於文字檔案無影響;對於圖片、影片等媒體檔案,追加的資料不會影響播放;對於可執行程式,可能會影響簽章驗證。請在合法合規的前提下使用。

什麼是 MD5 修改器?

MD5 修改器會在檔案末尾追加少量隨機資料,讓檔案的 MD5 雜湊值發生變化。因為 MD5 是根據完整檔案內容計算的,即使只增加幾個位元組,也會得到完全不同的摘要。它適合製作可區分的測試檔、驗證快取行為、模擬重複檔案偵測的邊界情況,或除錯依賴雜湊比對的流程。它不是檔案修復工具,也不能讓 MD5 變得安全;檔案內容確實被改動,只是某些格式可能仍能正常開啟。重要正本應保留未修改副本。

使用方式

使用方式

  1. 點選上傳區域或將檔案拖曳至頁面(最多 5 個檔案)
  2. 點選「修改 MD5」按鈕開始處理
  3. 等待處理完成,檢視原始與新的 MD5 值
  4. 點選「下載」取得修改後的檔案

請謹慎使用

  • 變更檔案雜湊值代表檔案內容已改變,即使肉眼看不出圖片或檔案的差異。
  • 請勿在涉及完整性、法律證據、歸檔紀錄或已簽署發佈等情境下使用修改過的檔案。

使用場景

不修改檔案內容即可變更檔案雜湊值選取或拖曳最多五個檔案進行處理,工具會在檔案末尾追加 8 個隨機位元組。頁面會並排顯示原始 MD5 與新 MD5,修改後的 Blob 可直接下載且保留原始檔名。所有檔案讀寫都在瀏覽器內透過 File 和 Blob API 完成——來源檔案在本地讀取、在記憶體中追加位元組、修改後的副本直接提供下載,全程不會上傳。
測試去重機制與快取行為部分上傳系統、雲端硬碟和快取機制會以 128 位元的 MD5 摘要來識別檔案。本工具能快速產生位元組不同的副本,在 QA 驗證系統是否將近乎相同的檔案視為不同上傳時特別好用。由於雪崩效應,即使只在末尾追加 8 個隨機位元組,也會翻轉大約一半的輸出位元,因此新 MD5 與原始值完全無關。
準備受控的雜湊變更實驗由於操作簡單且在本地執行,你可以清楚看到內容位元組確實改變了,同時檔案類型和檔名保持不變可供下載。最適合用於實驗和相容性測試,但不適合處理拒絕末尾位元組的嚴格檔案格式(如簽署過的 PE 二進位檔、部分加密容器)。來源檔案始終留在本機,只有修改後的副本在記憶體中產生。
產出可區分的測試資料且檔案大小可預期追加 8 個隨機位元組只會讓檔案大小產生微小且可預期的差異,這在迴歸測試需要比對精確位元組數時非常實用。每個測試案例各產生一份修改副本,讓測試資料能透過雜湊值區分,又不會讓測試儲存空間膨脹——相對於數 MB 的樣本檔案,8 位元組的差異幾乎可以忽略。
驗證壓縮檔或安裝程式在追加位元組後仍能正常開啟將修改後的 Blob 用於 ZIP、TAR、PNG(規範忽略 IEND 之後的內容)、MP4 或安裝程式的冒煙測試,檢查解析器是否會拒絕額外的末尾資料。如果目標程式拒絕該檔案,應改用僅修改雜湊值的方式處理測試流程,而非依賴此修改用於正式環境——可執行檔和已簽署的套件對結構變更特別敏感。

技術原理

MD5 修改器的核心概念極其簡單:在檔案末尾追加 N 個隨機位元組(通常 8-16 個),讓 MD5 重新計算完整資料的摘要。得益於雪崩效應,任何一個位元組的變更都會翻轉大約一半的輸出位元,因此結果看起來完全不同。 為什麼在末尾追加能保持可用性?大多數容器格式(ZIP、PNG、MP4、JPEG、PDF、APK)只讀取標頭定義的資料區域,忽略 EOF 之後的額外位元組。這源於一種設計傳統:許多格式允許在結束標記之後放置註解或自訂擴充。例如,ZIP 的中央目錄結束記錄之後可以跟隨任意位元組,PNG 明確忽略 IEND 區塊之後的所有內容。 追加與碰撞攻擊:使用者有時會問能否計算出特定的 MD5。這需要找到兩個不同的訊息使得 MD5(msg1) = MD5(msg2)——正是王小雲在 2004 年破解的碰撞攻擊。產生碰撞需要在 GPU 叢集上花費數小時,且產生的訊息具有不可控制的特定結構。追加隨機位元組是 O(1) 的實用替代方案;代價是新的 MD5 無法預測且不能指定。 追加位置:在中間插入隨機資料會破壞資料流,因此本工具始終在末尾追加。追加太少位元組(1-2 個)技術上可行但結果與原始值過於接近;建議至少 8 個位元組,碰撞空間可達 2^64。

  • MD5 雪崩效應:變更 1 個輸入位元會翻轉約 50% 的輸出位元,因此任何位置的單一位元組變更都會完全改變摘要。
  • ZIP 容器在中央目錄結束之後追加資料仍可正常解壓縮;MP4 的 mdat box 可放在末尾,後面跟隨額外資料;PNG 明確忽略 IEND 區塊之後的所有內容。
  • 至少追加 8 個位元組以確保安全;理論上結果空間為 2^64,碰撞機率微乎其微。
  • 無法指定目標 MD5:要讓檔案雜湊到特定值需要進行碰撞攻擊,代價極高且不可控。本工具僅保證產生隨機不同的 MD5。
  • 對數 MB 的檔案追加 8 個位元組幾乎可忽略不計(增長不到 0.0001%),但對幾 KB 的小檔案,相對增長較為明顯。
  • 可執行檔、加密容器和已簽署的套件對結構變更特別敏感;追加可能導致驗證失效,使用前應在沙箱中測試。

範例

產生大小可預期的不同測試檔案

原始檔: report.pdf(1,024,000 位元組,MD5=8f3a7c1e...)
附加 8 位元組隨機資料
新檔案: report.pdf(1,024,008 位元組,MD5=b2e1d04a...)
使用情境:迴歸測試需要兩個看起來位元組相同但 MD5 摘要不同的 PDF;8 位元組差異讓檔案大小斷言保持可預期。

為快取測試建立位元組相異的副本

原始影片: tutorial.mp4(500 MB,MD5=3a8b9c0d...)
附加 16 位元組隨機資料
新影片:   tutorial.mp4(500 MB + 16 位元組,MD5=7e4f1a2b...)
使用情境: 驗證 CDN、CI 產出物儲存或建置快取在收到兩份語意相同、僅尾端位元組不同的輸入時的行為。

相容性與影響

圖片(JPEG/PNG): 顯示正常,檔案大小幾乎不變
影片(MP4/MKV):  播放正常,播放器會忽略尾端資料
壓縮檔(ZIP/RAR):只要原始結構完好就能正常解壓
執行檔(EXE):    通常仍可執行,但數位簽章會失效

常見問題

「修改」MD5 實際上做了什麼?

工具會在檔案末尾追加少量額外位元組,讓檔案內容發生變化,因此 MD5 摘要也會隨之變化。目的是讓雜湊值變得不一樣,而不是產生你指定的 MD5 值。請保留原始檔案,因為修改後的副本已經不再與原檔逐位元組一致。

為什麼有人想修改檔案的 MD5?

常見的合理用途包括:製作不同的測試檔、檢查快取失效行為、在自己系統上驗證上傳去重邏輯,或示範雜湊值依賴於每一個位元組。請不要用修改後的雜湊去繞過版權識別、反作弊、防毒掃描或平台規則。

修改後的檔案會壞掉或無法讀取嗎?

通常不會,因為很多媒體格式會忽略檔尾的無害位元組。但已簽章的 PDF、執行檔、壓縮檔以及含內部校驗的檔案,在追加任何位元組後都可能驗證失敗。使用前先測試輸出檔,並保留一份未修改的原始檔。

可以產生指定的目標 MD5 嗎?

一般情況下不行。透過追加位元組命中任意目標 MD5 在運算上不可行。本頁面只是讓摘要與原檔不同,不是「選定前綴」碰撞產生器,也不是匹配指定雜湊的工具。

這跟 MD5 碰撞攻擊有關嗎?

沒有關係。碰撞攻擊是構造兩個 MD5 相同的不同輸入;本工具做相反的事——修改一個檔案讓它的 MD5 變得不同。MD5 仍然不適合用於安全性簽章或完整性保證。

修改後的檔案能通過其他雜湊校驗嗎?

不能。SHA-1、SHA-256、CRC、檔案大小以及許多格式特定的校驗都會發生變化。如果對端使用 SHA-256 或數位簽章進行校驗,修改後的副本不會與原檔相符。

使用這個工具合法嗎?

修改自己的檔案做測試或學習通常沒有問題。但用修改過的檔案去繞過版權系統、反作弊、防毒偵測、存取控制或平台條款,可能違法或違反服務規則。請只在自己有權限測試的檔案和系統上使用。