保护Android Java代码中的硬编码值(api密钥)
我的Java代码(APK)中有硬编码字符串(APIkey),但它可以被许多工具轻松地反编译。我知道我可以通过加密来保护。但是如果黑客反编译我的Java并找出加密和解密代码呢?有更好的方法吗?您应该在build.gradle文件中添加密钥。这些文件不包括在您的apk中。事实上,这些只是用来签署应用程序和创建发布版本保护Android Java代码中的硬编码值(api密钥),android,encoding,Android,Encoding,我的Java代码(APK)中有硬编码字符串(APIkey),但它可以被许多工具轻松地反编译。我知道我可以通过加密来保护。但是如果黑客反编译我的Java并找出加密和解密代码呢?有更好的方法吗?您应该在build.gradle文件中添加密钥。这些文件不包括在您的apk中。事实上,这些只是用来签署应用程序和创建发布版本 signingConfigs { release { storeFile file("../myapp.jks") storePassword "myp
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
}
}
我希望这个问题能帮助你,谢谢你的回答。我认为这应该行得通,但如果他调试应用程序并找到数据呢?在调试时无法获取密钥和密钥密码。密钥和证书被加密并存储在/data/misc/keystore中。但是,由于它们已由系统存储,因此您没有访问或解密它们的权限。此外,没有用于此的公共API。如果有帮助,请投票并接受答案:)