java - 在我的应用程序中硬编码我的 keystore 的密码可以吗?

标签 java android ssl httpclient keystore

就 SSL 和一般安全性而言,我完全是个新手。我找到了以下关于如何加载 keystore 以信任自定义 SSL 证书的示例(顺便说一句,这是使用 Apache HTTPClient):

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);
  }
}

我想您需要访问设备才能修改 keystore ,但是... keystore 密码(“ez24get”)在代码中很容易获得这一事实是否存在问题?怎样才能破坏包含此代码的应用程序?

最佳答案

如果这是您愿意承担的风险。

任何有足够决心反编译您的代码的人都可以得到它。即使您混淆了您的代码,您仍然会冒着风险,因为他们需要做的就是找到字符串。

关于java - 在我的应用程序中硬编码我的 keystore 的密码可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5188252/

相关文章:

java - 在 Android 运行时将字符串编译为代码

android - 加载数据时WebView重绘问题

ssl - Jmeter 关闭 SSL 证书

java - 浏览器集成ssl证书

Java replaceAll 与反向引用

java - 如何从 Subclipse 中的 svn repo 同步中排除文件?

java - 从 oracle db 执行 java callout

安卓短信定时器

rest - angularjs get 请求在切换到 SSL 后被取消

JavaFX 时钟小部件随机抛出异常