【发布时间】:2020-07-15 06:42:50
【问题描述】:
我想保护一些敏感字符串。例如:
- 我的 Admob ID
- 我的 Mapbox 私钥
看来 Admob ID 必须在 AndroidManifest.xml 中:
<!-- AdMob -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="@string/admob_app_id"/>
有什么方法可以保护这个 ID,让逆向工程师无法访问它?
我在 Fragment 中加载了我的 Mapbox 私钥:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val ac = activity?.applicationContext ?: return inflater.inflate(R.layout.fragment_map, container, false)
Mapbox.getInstance(ac, resources.getString(R.string.mapbox_access_token))
return inflater.inflate(R.layout.fragment_map, container, false)
}
还有什么方法可以确保这一点吗?我实现了cloud functions,它有一个安全的node.js 服务器——但上面的API 是原生的Android。
有什么想法吗?
【问题讨论】:
-
您允许存在于客户端设备上的任何内容都不再是真正的私有内容。如果您加密数据,您还必须提供要解密的算法和数据才能使用它,并且所有这些都可以进行逆向工程。你所能做的就是让它变得更加困难。
标签: android node.js firebase kotlin google-cloud-functions