2017-06-06 42 views
2

我想就隱藏API密鑰和祕密密鑰的最佳方式發表意見。Android - 隱藏API clientId和clientSecret的最佳方法

我發現2種方式:

我知道風險0不存在,但什麼是最安全的方案?

預先感謝

+0

問題是你想隱藏誰的鑰匙?第一個ndk方法有助於在逆向工程時更難找到密鑰,第二個gradle方法有助於在共享源代碼時在本地保留密鑰,但在我看來,您正在比較蘋果和桔子 – lelloman

+0

是的,我想在逆向工程時讓它變得更加困難。我認爲Gradle也允許這樣做。感謝您的解釋 – Louis

回答

1

NDK的似乎是你最好的選擇,雖然不是100%安全的,但可以肯定的是難以逆轉工程師。 gradle的方式似乎並不安全。

對於混淆和加密的目的,您還可以利用DexGuard

+0

感謝您的回答。我將使用NDK。我聽說過DexGuard, 如果我沒有弄錯,沒有免費版(proguard除外) – Louis

+0

不客氣。不要忘記提供有用的答案,並接受最能幫助你的答案,作爲正確的答案。 – jsc

+0

如果不是ndk,那麼可以按照此鏈接中所述使用密碼來完成您的工作:https://stackoverflow.com/questions/43629251/how-to-save-oauth-access-token-securely-in-android – Calvin

0

確保密鑰最好的方法是不要將密鑰放入應用程序中,爲此,如果您使用的是高度安全的服務器(例如Amazon服務器),則將密鑰放在服務器上並在運行時訪問它們。同時在應用程序和服務器端應用公共/私人加密。

但是,如果你想留在應用程序,那麼使用「NDK」或使用「Proguard」都是應用程序級別的高度安全的機制。

+0

是的,我使用安全的服務器和https。但是我不明白這種方法是黑客可以提出相同的請求來檢索密鑰。 – Louis

+0

它並沒有說只是在服務器上保存api密鑰,你也必須使用「公共/私人API密鑰加密」。檢查這個博客,並看到「公共/私人API密鑰交換」部分,希望它會澄清: http://www.androidauthority.com/how-to-hide-your-api-key-in-android-600583/ –

+0

好的,謝謝你的回答。我會閱讀:) – Louis

相關問題