【问题标题】:YouTubePlayer - How to hide/encrypt API Key?YouTubePlayer - 如何隐藏/加密 API 密钥?
【发布时间】:2016-11-14 22:36:30
【问题描述】:

在网上做了一些研究后,我读到处理请求的最安全方法是让服务器调用 API(通过 php),然后将数据作为 JSON 对象提交回应用程序。

但是,在使用任何 YouTubePlayer 子类的情况下,需要在应用程序中设置 API 密钥:

public abstract void initialize (String developerKey, YouTubePlayer.OnInitializedListener listener)

开发者密钥需要出现在代码中某处。并且所有存储 API 密钥的传统方式(即作为私有静态字符串变量,在 XML 文件中)都不够有效。

问题:

  1. 即使 APK 被反编译,是否有任何方法可以隐藏 API 密钥?
  2. 仅让应用程序调用服务器并让服务器将 API 密钥作为 JSON 对象发送回(不存储它)是否安全?但是这种情况会不会发生恶意拦截?

这不是我的专业领域,所以如果有人能提供建议、链接、示例代码,那就太好了:)谢谢!

【问题讨论】:

  • 世界上没有办法完全隐藏 api 密钥(我不知道)。但你可以让它更难找到。使用 ndk 将密钥存储在 C 库中,但请记住,C 也有调试工具 :)
  • @RahulKumar 是对的。没有安全的方法。一切都可以逆向工程。对不起。 ;(

标签: java security encryption android-youtube-api


【解决方案1】:

我正在为服务业务流程开发服务应用程序,发现这是使用您的密钥加密 api 的最佳方法。

我将 mac 地址 + 设备 ID 连接为加密密钥

【讨论】: