---
title: "萬解，遺失 Keystore 密碼但 IDE 還記得？用 Build Log 把密碼「抓」出來"
description: "最遙遠的距離，是密碼就在 IDE 裡但我看不見"
author: "kidneyweakx"
published: 2025-12-06T12:00:00.000Z
updated: 2025-12-19T01:11:45.444Z
lang: zh-TW
tags: ["程式筆記", "Android"]
canonical: https://kidneyweakx.com/blog/catch-keystore-secret-by-gradle
alternate_en: https://kidneyweakx.com/blog/catch-keystore-secret-by-gradle.md?lang=en
alternate_ja: https://kidneyweakx.com/blog/catch-keystore-secret-by-gradle.md?lang=ja
---

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

> **最遙遠的距離，是密碼就在 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

```
// ==========================================
// 密碼攔截腳本 (用完請務必刪除！！！)
// ==========================================
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

```
========== [抓到了！密碼在這裡] ==========
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 注入的參數，不需要安裝任何破解工具，安全又快速。希望能幫到同樣金魚腦的開發者們！
