我在我的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