隐藏开源应用程序中使用的API密钥

时间:2013-01-09 12:21:10

标签: java open-source obfuscation api-key

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

但是,如果将这些键作为字符串粘贴在源代码中,那么任何人都可以撤回repo的内容并非常简单地找到它们。

到目前为止,我最好的想法是如何防止这种情况是将它们单独编译成一个类文件,对其进行模糊处理,然后只使用它,这样它们至少不会在源文本中以纯文本形式出现。但是,我缺少一种更好,更被接受或常用的方式吗?我不是完全和完全的安全性,但至少想要提取密钥一样困难,因为我合理地给出了一个开源环境。

1 个答案:

答案 0 :(得分:9)

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

TL; DR:真正避免发布密钥的唯一方法就是不要让它们成为公共源代码库的一部分。其他任何意味着他们都可以被其他人轻易提取。