首頁
學習紀錄
遊戲心得影視Life書單案件檔案
Side Projects委託作品與二創互動實驗場
Kurau
百百 BLOG
首頁
學習紀錄
遊戲心得影視Life書單案件檔案
Side Projects委託作品與二創互動實驗場
Kurau

Kurau Blog

「隨心而寫,真真假假,都是我」

一個記錄生活、輸出興趣的個人空間。
遊戲、影視、閱讀、學習……每一段體驗都值得留下文字。

頁面導覽

  • 學習紀錄
  • 遊戲心得
  • 影視Life
  • 書單
  • 委託作品與二創
  • Kurau
  • 合作邀請

找到我

歡迎來 Discord 找我聊天!

“曾經發生的事不可能忘記,只是暫時想不起來而已。”-《神隱少女》

© 2026 Kurau All rights reserved

開發工具

Excel密碼破解

By Kurau·2023-03-15·Updated 2026-05-09·4 分鐘閱讀

Excel 密碼破解(VBA Brute-force)

TL;DR
遺忘 Excel 工作表保護密碼 時,可以用 VBA macro 暴力破解。只能破 sheet protection(Sheet.Unprotect),檔案開啟密碼解不了(那個是真加密)。自己的檔案才用,別碰別人的。
法律 / 道德提醒
只用在自己忘記密碼的檔案。破解別人的檔案違法(營業秘密法、刑法)。本筆記僅供學習用途。

何時可以用

場景可破?
自己加保護的工作表(Tools → Protect Sheet)✅ 可破
別人的 Excel sheet protection❌ 別碰
檔案開啟密碼(File Encryption)❌ 真加密,破不了
共享活頁簿密碼⚠️ 部分可破

Excel sheet protection 的「密碼」其實只是 12 字元 hash,VBA 用簡單 brute-force 就能找到等效 password(碰撞密碼,不一定是原本的)。


VBA 腳本

Sub PasswordBreaker()
    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer

    On Error Resume Next

    For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
    For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
    For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
    For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126

        ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
            Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
            Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

        If ActiveSheet.ProtectContents = False Then
            MsgBox "Password is " & Chr(i) & Chr(j) & _
                Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
                Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
            Exit Sub
        End If

    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next: Next
End Sub
vbnet

原理:測試 AAAAAAAAAA? 系列 的密碼(空格到 ~ 共 95 種),迴圈 95 次後 99% 機率找到等效密碼。


使用步驟

  1. 開啟受保護的 Excel
  2. 按 Alt + F11 開啟 VBA Editor
  3. Insert → Module 新增模組
  4. 貼上上面 code
  5. 按 F5 執行
  6. 等 1-30 秒,出現 Password is XXXXXX 對話框
  7. 用該密碼解 sheet protection

解出來的密碼可能不是原密碼,但 功能上等效。


替代方案

1. 7-Zip / WinRAR 法

Modern Excel(.xlsx) 是 ZIP 檔。

1. 把 .xlsx 改名 .zip
2. 用 7-Zip 解壓
3. 找 xl/worksheets/sheetN.xml
4. 用文字編輯器打開,刪除 <sheetProtection ... /> 那行
5. 重新打包成 zip,改名回 .xlsx

這方法繞過 password,直接 patch 受保護結構,適合 .xlsx / .xlsm。

2. 第三方工具

工具說明
PassFab for Excel商業工具,GUI 操作
iSeePassword同上
xlsx-populate Node.js 套件,可以重寫 xlsx 跳過保護

真正的檔案密碼怎麼辦

File → Info → Protect Workbook → Encrypt with Password 設的 才是真加密(AES-256)。

這個沒辦法破,只能:

  1. 用備份(如有)
  2. 暴力破解(可能跑幾年)
  3. 接受失去資料

這是為什麼 設密碼一定要記 + 備份**==。

目錄

    ◆ 相關文章

    • github 多個帳戶 SSH登入

      2026-05-09
    • lodash

      2026-05-09
    • github 大小寫問題

      2026-05-09
    • npm --save 到底是什麼 --save-dev 不一樣嗎

      2026-05-09
    ← 上一篇CORS firebase下一篇 →Docker應用

    ◆ 關於作者

    Kurau

    個人寫作 / 創作的 SoT,記錄遊戲、影視、學習與生活。

    更多 Kurau 的文章