【发布时间】:2013-01-09 12:21:10
【问题描述】:
我目前正在开发一个基于 3rd 方 Web API 的桌面应用程序,并且已经注册了他们的程序并获得了两个访问密钥作为回报。
但是,如果将这些键作为字符串粘贴到源代码中,那么任何人都可以拉回 repo 的内容并轻松找到它们。
到目前为止,我如何防止这种情况的最佳想法是将它们单独编译到一个类文件中,对其进行混淆,然后使用它,这样它们至少不会在源代码中以纯文本形式出现。但是有没有更好,更被接受或常用的方式我错过了?我并不追求完全和绝对的安全性,但至少想让在开源环境下尽可能难以提取密钥。
【问题讨论】:
-
混淆类不会有太大区别,因为它只会破坏字段名称,而不是其内容,因此提取仍然很简单。
-
您确定您可以允许“世界”使用您的凭据访问网络服务吗?每个用户不应该为自己注册吗?
-
@a_horse_with_no_name 这些是特定于应用程序的 API 密钥,而不是特定于用户的。通过在这种情况下进行混淆,我可能会手动对实际的字符串构造进行处理。当然,仍然相对容易提取,但至少有点模糊。
-
How to open-source an application that uses API keys 的可能重复项。不过,这个问题的范围更具体,所以可能不是。
标签: java open-source obfuscation api-key