2013-05-07 38 views
11

我讀了this article關於簽署您的Android應用程序。我用Eclipse導出我的Android應用程序,必須創建一個密鑰庫(成功)和一個帶有別名的私鑰(它也成功了)。所以我知道我必須用私鑰簽署應用程序。什麼是Android中的私鑰?

不過,文章不作以下問題說清楚什麼:

  • 什麼是私有密鑰?
  • 您應該製作的每個應用程序是否有另一個密鑰或應該共享相同的私鑰?
  • 什麼是別名?
  • 爲什麼這些應用程序具有有效期限?
+1

@downvoter:請留下評論來解釋downvote。 – 2013-05-07 19:01:03

+1

不是我的失望,但你應該在[Wikipedia](https://en.wikipedia.org/wiki/Public-key_cryptography)上獲得關於公鑰/私鑰的大量信息。 – nkr 2013-05-07 19:03:22

+3

我認爲這是一個有效的問題,他沒有要求獲得關於pub/private認證的技術信息,以至於在android上下文中的實際含義。 – 2013-05-07 19:05:07

回答

10

私鑰是驗證您是應用程序所有者的加密工具。任何正在更新到Google Play商店的內部版本都必須使用您的私鑰進行簽名,以證明它是合法版本。

因此,要上傳到商店的每個不同的應用程序都應該有自己的專用密鑰。 如果您失去此密鑰,您將無法上傳應用的任何新版本,,因此請確保將其存儲在安全的地方並進行備份!

但是,爲了方便起見,您可以將多個私鑰存儲在同一個密鑰存儲區中。 (儘管我不這樣做,但我發現爲每個項目都設置不同的密鑰庫會更方便。)

別名只是一個簡單易讀的密鑰名稱。沒有更多或更少。

值得注意的是,當您執行Eclipse的「運行」時,它會使用稱爲調試鍵的東西來運行應用程序。這可以正常工作,因爲您並未嘗試將此構建版上傳到商店,但這就是爲什麼您需要使用單獨的構建流程來構建您的應用程序以進行部署。

生命有效期是技術要求。只需在未來設置它,不用擔心。

+0

嘿,那麼只是爲了澄清一下我發佈的每個應用程序都有一個關鍵存儲區和一個專用密鑰?例如。一個私人密鑰爲應用程序A和另一個私人密鑰爲應用程序B.如果我想發佈應用程序B的更新我使用應用程序B的私鑰而不是應用程序A?謝謝你閱讀和寫這個答案 – user3364963 2014-10-29 22:38:10

+1

是的,你應該有一個私人密鑰爲每個應用程序。我還建議爲每個應用程序分別設置一個密鑰存儲區,這樣,如果您想讓某人只訪問您的一個私人密鑰,則可以輕鬆完成。但是你可以*在同一個密鑰庫中有兩個私鑰。 – 2014-10-29 22:44:12

1

簽名就像您的Android應用程序的證書(認爲Web證書有一些想法) - 它證明您是該應用程序的所有者。每個應用都必須簽名,因爲您提供的鏈接清楚地表明瞭這一點。

從理論上講,從一個開發者每個應用程序應該是相同的簽名下(畢竟,這是>你的<簽名,而不是應用程序的)

別名就是:你的關鍵,一個別名,你用於在簽署應用程序時引用密鑰庫。

關於壽命,並非所有事情都會持續下去。那些簽名(或者證書,如果你願意的話)可以持續25年以上。不是你必須擔心的事情。