【发布时间】:2016-11-14 22:36:30
【问题描述】:
在网上做了一些研究后,我读到处理请求的最安全方法是让服务器调用 API(通过 php),然后将数据作为 JSON 对象提交回应用程序。
但是,在使用任何 YouTubePlayer 子类的情况下,需要在应用程序中设置 API 密钥:
public abstract void initialize (String developerKey, YouTubePlayer.OnInitializedListener listener)
开发者密钥需要出现在代码中某处。并且所有存储 API 密钥的传统方式(即作为私有静态字符串变量,在 XML 文件中)都不够有效。
问题:
- 即使 APK 被反编译,是否有任何方法可以隐藏 API 密钥?
- 仅让应用程序调用服务器并让服务器将 API 密钥作为 JSON 对象发送回(不存储它)是否安全?但是这种情况会不会发生恶意拦截?
这不是我的专业领域,所以如果有人能提供建议、链接、示例代码,那就太好了:)谢谢!
【问题讨论】:
-
世界上没有办法完全隐藏 api 密钥(我不知道)。但你可以让它更难找到。使用 ndk 将密钥存储在 C 库中,但请记住,C 也有调试工具 :)
-
@RahulKumar 是对的。没有安全的方法。一切都可以逆向工程。对不起。 ;(
标签: java security encryption android-youtube-api