程式筆記
Android

萬解,遺失 Keystore 密碼但 IDE 還記得?用 Build Log 把密碼「抓」出來

LANG:
K

kidneyweakx

December 6, 2025 (Updated: December 19, 2025)

最遙遠的距離,是密碼就在 IDE 裡但我看不見

相信很多 Android 開發者都遇過這個崩潰瞬間:準備打包 Release 版本時,發現很久沒輸入的 Keystore 密碼忘記了!雖然 Android Studio 很貼心地顯示「Remember passwords」並自動填入,但它就是只給你看 ••••••••,死都不肯顯示明文。

難道只能向 Google 申請重置 Upload Key 或是暴力破解嗎?

別急!只要 Android Studio 還記得密碼,我們就能透過 Gradle 把它「攔截」下來。

# 原理說明

當我們執行 Generate Signed Bundle / APK 時,Android Studio 為了讓 Gradle 能夠進行簽署,必須在背後將密碼「注入」給 Gradle。我們只要在 build.gradle 裡埋伏一段程式碼,監聽這個注入動作,就能把密碼印在 Log 裡。

# 實作步驟 (Kotlin DSL 版本)

Step 1:埋伏監聽腳本

打開你的 App 層級 build.gradle.kts 檔案,將以下這段程式碼貼到檔案的最尾端:

Kotlin

code
// ==========================================
// 密碼攔截腳本 (用完請務必刪除!!!)
// ==========================================
project.afterEvaluate {
    val storePass = project.properties["android.injected.signing.store.password"]
    val keyPass = project.properties["android.injected.signing.key.password"]

    if (storePass != null || keyPass != null) {
        println("\n========== [抓到了!密碼在這裡] ==========")
        println("Store Password: $storePass")
        println("Key Password:   $keyPass")
        println("=========================================\n")
    }
}

Step 2:觸發打包

  1. 點擊 Android Studio 頂部選單 Build > Generate Signed Bundle / APK...。
  2. 依照正常流程,填選 Keystore 路徑。
  3. 關鍵一步: 務必確認 "Remember passwords" 是勾選狀態(這樣 IDE 才會把密碼吐出來)。
  4. 點擊 Next > Create 開始打包。

Step 3:查看 Log

打包開始後,打開底部的 Build 分頁,點擊左側的 "Toggle view" (清單圖示) 切換成純文字模式。

在茫茫 Log 海中搜尋關鍵字:抓到了。

你會看到類似這樣的畫面:

Plaintext

code
========== [抓到了!密碼在這裡] ==========
Store Password: your_lost_password_123
Key Password:   your_lost_password_123
=========================================

Step 4:備份與銷毀 (最重要!)

恭喜你找回密碼!

  1. 請立刻把密碼記在 1Password 或安全的地方。
  2. 立刻刪除 build.gradle.kts 裡剛剛那段程式碼。
  3. 如果這段程式碼不小心被 Commit 到 Git,請務必修改 Git History 或視為密碼已洩漏。

# 結語

這個方法利用了 Gradle 的 project.properties 機制,直接讀取 IDE 注入的參數,不需要安裝任何破解工具,安全又快速。希望能幫到同樣金魚腦的開發者們!