-1

這讓我困惑了一會兒。我對加密沒有廣泛的理解,但我理解這個原則。
爲了舉例,我們假設我有一個程序,其唯一目的是將隨機用戶的輸入發佈到我的私人Facebook個人資料。現在要做到這一點,該程序必須有我的登錄信息到Facebook(如果情況並非如此,假設另一個第三方應用程序)。這些信息或證書必須存儲在某個地方,因爲該程序的post方法將在沒有管理的情況下完成。爲什麼認爲加密更安全?

我知道這是一個糟糕的政策,因爲編譯的代碼可以被反編譯並且我的憑據可讀,所以將登錄憑證作爲普通字符串存儲在代碼中。推薦的解決方案是將它們存儲在單獨的文件中,並進行加密。

據我所知,加密/解密需要一個密鑰,也需要存儲在某個地方。無法從反編譯的代碼中讀取此密鑰和加密算法並用於解密憑證?

存儲基於反編譯 - 解密額外步驟加密的憑證的好處,還是我徹底誤解了某些內容?

+2

我認爲這個問題是更適合http://security.stackexchange.com – beatcracker

+1

有戰略,使之不平凡的獲得到井存儲的密鑰訪問([在哪裏存儲用於加密的密鑰] (http://security.stackexchange.com/questions/12332/where-to-store-a-key-for-encryption))。 –

+0

@beatcracker謝謝,我也會在那裏嘗試,但是我會在這裏打開它,因爲我覺得這與我自己的編程密切相關。 – Sami

回答

0

有2種方式人們可以檢查提供的憑證時,你已經加密的版本:

  1. 解密加密的版本;這顯然需要存儲解密所必需的工具,這是不安全的。
  2. 加密您正在嘗試檢查的內容,並查看它是否與您的加密版本匹配。這是否不是需要解密任何東西的能力。
+0

第2步是我的問題中常見的誤解。沒有什麼可比較的。沒有人提供憑證輸入。用戶只需輸入「Hello world!」,然後程序將其發送到服務,無論是Facebook還是其他。證書必須存儲並打開,以便程序可以在不管理的情況下使用它們。 – Sami

+0

那麼也許你應該編輯你的問題,不是嗎? –

+0

我認爲這很明顯,如果你看到這個問題.. – Sami

相關問題