【问题标题】:Passwords in source code - Is it secure? [duplicate]源代码中的密码 - 它安全吗? [复制]
【发布时间】:2013-10-16 17:39:27
【问题描述】:

我对源代码中的密码有疑问。例如。如果您想连接到 FTP 服务器,您必须在源代码中以纯文本形式写入密码。 这安全吗?或者是否可以反编译 JAR 文件或 Android APK 文件以获取这些纯文本数据?是否有一种安全的方法来存储数据?

【问题讨论】:

  • 是否可以反编译 JAR 文件或 Android APK 文件以获取这些纯文本数据?是的:)
  • 任何人都可以从 .apk 和 .dex 到 .jar 中获取 .dex 文件。& 有用于从 .jar 中获取 java 的反编译器。所以在源代码中存储密码是不安全的
  • 那不好 :( 我能做些什么来避免这种情况?我知道如何反编译 APK 文件。但据我所知,字符串在纯文本中不可见。或者我错了?
  • 也许不在您的源代码中存储任何敏感信息?

标签: java android passwords


【解决方案1】:

最安全的方法是在与 ftp 相同的机器上运行“中间人服务器”。

应用程序联系服务器并说“给我文件”。 然后服务器登录到 ftp 并将文件发送回应用程序。

应用程序永远不知道 ftp 的密码、用户名或任何内容。只有ip地址和如何从服务器获取文件。

然后服务器可以有某种保护,只接受某些请求,或者只接受来自应用程序等的请求。

【讨论】:

    【解决方案2】:

    Java 反编译器可以在 Internet 上轻松找到。
    如果是 apk,您可以

    • 在电脑上解压APK
    • 使用 dex2jar 转换器等工具生成.jar 文件
    • 使用 java 反编译器获取源代码。


    但是我也发现了一些应用程序无法通过这种方式反编译为源代码,我不知道他们是如何实现的。

    【讨论】:

    • 我猜还是会有嗅探工具的危险。
    • 完全安全几乎是不可能的,但请继续搜索/学习,让您的应用难以破解。
    • 这就是为什么我会在服务器端做所有事情。我想这是最安全的方式。
    【解决方案3】:

    如果您必须在源代码中包含密码,那么在 C 中对其进行混淆会更安全,而您的 Java 代码只需从 JNI 中获取密码。否则,请遵循 René Jensen 的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2016-03-25
      • 1970-01-01
      • 2013-04-16
      • 2019-01-19
      相关资源
      最近更新 更多