我在我的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. 保護android源代碼
- 3. 硬編碼值
- 4. 代碼保護和代碼編織在.net
- 5. 的Android ConstraintLayout @dimens替換硬編碼值
- 6. 源代碼保護
- 7. 保護Ruby代碼
- 8. 保護PHP代碼
- 9. 保護Ruby代碼
- 10. PHP - 保護代碼
- 11. 屏幕保護程序的Android代碼
- 12. Java中的編碼代碼
- 13. 保護/加密編程代碼
- 14. MS Access連接字符串中的硬代碼憑據(受密碼保護)
- 15. @ Html.EditorFor的硬編碼值
- 16. Class.getSimpleName()vs在Java中硬編碼類名?
- 17. 保護我的代碼?
- 18. 保護DLL的源代碼
- 19. 密碼保護的SAS代碼
- 20. 在Java程序中保護密碼
- 21. 需要開放密碼保護的docx文件的java代碼
- 22. 在Informix DB中選擇硬編碼值
- 23. 在Matlab和Python中保護源代碼
- 24. HP Fortify假硬編碼密碼 - Java
- 25. 在Android源中保護密碼
- 26. 將HTML硬編碼爲VB6代碼
- 27. 如何保護Java代碼免受反編譯?
- 28. 什麼是編碼/保護JavaScript代碼的最佳方式?
- 29. 保護密碼SHA-1 Java
- 30. 硬編碼指針值
我是這個問題會幫助你http://stackoverflow.com/questions/30359439/how-can-i-securely-store-and-retrieve-api-keys-for-an-android-application - 寫 – Sandeep