java - 隐藏开源应用程序中使用的 API key

标签 java open-source obfuscation api-key

我目前正在开发一个基于第三方 Web API 的桌面应用程序,并已注册他们的程序并获得两个访问 key 作为返回。

但是,如果将这些键作为字符串粘贴到源中,那么任何人都可以拉回存储库的内容并轻松找到它们。

到目前为止,我关于如何防止这种情况的最佳想法是将它们单独编译成一个类文件,对其进行混淆,然后使用它,这样它们至少不会在源代码中采用纯文本形式。但是有没有一种更好、更容易被接受或更常用的方式是我所缺少的呢?我并不追求完全彻底的安全性,但至少希望在开源环境下尽可能地困难地提取 key 。

最佳答案

您可能希望将访问 key 作为源代码中的单独文件插入,从而避免将其推送到公共(public)存储库(或者在删除实际 key 的情况下进行推送,以便想要使用您的应用程序的人需要插入自己的 key )。这样,除了您的私钥本身之外,一切都是开源的。

TL;DR:真正避免发布 key 的唯一方法是不要将它们作为公共(public)源存储库的一部分。其他任何东西都意味着其他人可以轻松提取它们。

关于java - 隐藏开源应用程序中使用的 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14235088/

相关文章:

java - 地理编码器无法通过 getfromlocationName 工作

java - Java中如何在其他静态方法中使用静态方法变量?

Java:两个平行列格式

java - Java 类智能模板引擎?

javascript - GWT 和 JxBrowser - 有什么经验吗?

Java 到 VB.Net 的转换 [小片段]

c++ - 编辑文本缓冲区

c++ - 是否有用于 C 或 C++ 的跨平台 gzip 处理器库?

c++ - 如何将字符串混淆成 C++ 二进制文件?

android - 仅在启用 proguard 时 JSONArray 不是字符串异常