我正在构建一个SDK,其中需要从将集成我的Android SDK的应用程序中获取应用程序ID和应用程序秘密密钥。
我看到每个SDK都在使用这个概念的应用程序ID和秘密密钥。 我不知道这有什么用? 这如何使系统更加安全?
有人可以帮我解决这个问题吗?
我正在构建一个SDK,其中需要从将集成我的Android SDK的应用程序中获取应用程序ID和应用程序秘密密钥。
我看到每个SDK都在使用这个概念的应用程序ID和秘密密钥。 我不知道这有什么用? 这如何使系统更加安全?
有人可以帮我解决这个问题吗?
App ID和密钥是两个不同的东西。让我分别解释一下,然后把它们联系起来。
App ID
App ID只是一个应用程序的唯一标识符。这是为了避免在应用商店和您的设备上出现重叠。如果两个应用具有相同的App ID,则可以将一个安装在另一个之上,从而有效地擦除旧应用程序,并可能劫持您的数据。 App ID只是确保安全性的第一步。为了确保绝对没有上述情况发生的方法,我们使用密钥。
密钥
密钥是一种安全实现,通常用于非对称加密。让我们看看维基百科关于非对称加密的定义:
公钥密码学,也称为非对称密码学,是一类基于需要两个单独密钥(其中一个是秘密或私有的,另一个是公共的)的算法的加密协议。尽管不同,这个密钥对的两个部分在数学上是相关联的。
密钥是密钥对的一部分,另一部分是公钥。公钥如其名称所示,是公开可用的。秘密密钥理想情况下仅应对一个人可用。
密钥对用于打开锁,例如“解锁”应用程序。每个应用程序都有一个唯一的非对称锁。非对称锁要么用秘密密钥锁定,用公钥打开,要么反之。其目的是识别。只有一个人可以拥有秘密密钥。因此,由此人创建的任何应用程序,我们知道肯定来自该人而不是某些黑客/可疑来源。这就是为什么密钥很重要。
因此,这两个概念共同努力带给您更好的安全性。当您使用API时,有时不需要密钥,只需要App ID,以便您正在使用API的主要服务知道您使用的确切产品。
基本上它被用于授权。这反过来使SDK创建者对其用户拥有更多的控制。我可以想到一些原因,为什么一个SDK需要授权: