在我的应用程序中硬编码我的密钥库密码可以吗?
一般来说,我对SSL和安全性完全是新手。我找到了以下关于如何加载密钥存储库以信任自定义SSL证书的示例(这是使用Apache HTTPClient,btw):
private SSLSocketFactory newSslSocketFactory() {
try {
KeyStore trusted = KeyStore.getInstance("BKS");
InputStream in = context.getResources().openRawResource(R.raw.mystore);
try {
trusted.load(in, "ez24get".toCharArray());
} finally {
in.close();
}
return new SSLSocketFactory(trusted);
} catch (Exception e) {
throw new AssertionError(e);
}
}
我猜您需要访问设备才能修改密钥库,但是仍然.密钥库密码("ez24get")在代码中随时可用,这不是一个问题吗?要危及包含此代码的应用程序的安全,需要采取什么措施?
解决方案
如果您愿意冒这个风险。
任何有足够决心反编译您的代码的人都可以得到它。即使您混淆了代码,您仍然要承担风险,因为他们所需要做的就是查找字符串。
相关文章