我在我的Java代碼(APK)中使用了硬編碼字符串(APIkey),但可以通過很多工具輕鬆進行反編譯。我知道我可以通過加密來保護。但是如果黑客反編譯我的Java並找出加密和解密代碼呢?有沒有更好的方法來做到這一點?在Android的Java代碼中保護硬編碼值(api鍵)
0
A
回答
0
您應該將您的密鑰添加到build.gradle文件中。這些文件不包含在您的apk中。 Infact這些只是用來簽署你的應用程序並創建一個發佈版本。
signingConfigs {
release {
storeFile file("../myapp.jks")
storePassword "mypassword"
keyAlias "My_App"
keyPassword "mykeypassword"
}
debug {
storeFile file('../debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
release {
minifyEnabled false
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug{
debuggable true
minifyEnabled false
signingConfig signingConfigs.debug
}
}
+0
嗨感謝您的答覆。我認爲這應該工作,但如果他調試應用程序並找出數據呢? –
+0
調試時無法獲取密鑰和密鑰密碼。 密鑰和證書已加密並存儲在/ data/misc/keystore中。但是,由於它們已被系統存儲,所以您無權訪問或解密它們。另外,這個沒有公共的API。 如果有幫助請upvote並接受答案:) –
相關問題
- 1. 如何在PHP中保護硬編碼的登錄名/密碼?
- 2. 硬編碼字符串VS在Java代碼@string - Android電子
- 3. 保護android源代碼
- 4. 保護Android源代碼
- 5. 如何從反編譯保護或保護java代碼
- 6. 硬編碼值
- 7. Java的「鍵值編碼」
- 8. 保護遊戲的Java代碼
- 9. 保護已編譯的源代碼
- 10. 代碼保護和代碼編織在.net
- 11. 的JavaScript:避免硬編碼鍵碼
- 12. 硬編碼值JsonpResult
- 13. 保護Ruby代碼
- 14. PHP - 保護代碼
- 15. node.js代碼保護
- 16. 保護PHP代碼
- 17. 源代碼保護
- 18. 保護Ruby代碼
- 19. 的Android ConstraintLayout @dimens替換硬編碼值
- 20. 屏幕保護程序的Android代碼
- 21. 哪裏是tegra的android源代碼中的硬件編解碼代碼(4.1)
- 22. Java中的編碼代碼
- 23. 硬編碼快捷鍵
- 24. 保護硬編碼字符串不被反編譯
- 25. 保護/加密編程代碼
- 26. MS Access連接字符串中的硬代碼憑據(受密碼保護)
- 27. @ Html.EditorFor的硬編碼值
- 28. 保護DLL的源代碼
- 29. 保護Excel的VBA代碼
- 30. 保護我的代碼?
我是這個問題會幫助你http://stackoverflow.com/questions/30359439/how-can-i-securely-store-and-retrieve-api-keys-for-an-android-application - 寫 – Sandeep