PHP API 密钥生成器

2022-08-30 12:11:25

有谁知道任何用于PHP的API密钥生成器脚本/类?该类应该有方法生成,这将生成一个密钥和isValid()方法,以检查密钥是否有效。


答案 1

有多种方法可以生成 API 密钥。根据应用程序,我使用了以下3种方法,

  1. Base62(随机)。生成一个大的安全随机数,并以 Base-62 对其进行编码。密钥看起来像“w5vt2bjzf8ryp63t”。这适用于自行预配的系统。您不必担心碰撞和不适当的键。您必须检查数据库才能知道密钥是否有效。

  2. Base62(MD5-HMAC(key, Normalize(referer)))。如果只允许从一个站点访问 API,则此方法非常有效。只需检查规范化引用站点的 HMAC,您就知道密钥是否有效,没有数据库访问。为此,您需要对 HMAC 密钥保密。

  3. 人类分配的友好名称,如“example.com”。如果 API 用户需要拥有域,或者他们是您的企业合作伙伴,则此方法非常有效。

请记住,API 密钥中没有安全性。它只是分配给 API 应用程序的名称。越来越多的人使用“App ID”或“Dev ID”等术语来反映它的真实含义。如果你想保护你的协议,你必须分配另一个密钥,就像在OAuth中一样。consumer_key/consumer_secret


答案 2

以下是我对这个问题的简单回答:

$key = implode('-', str_split(substr(strtolower(md5(microtime().rand(1000, 9999))), 0, 30), 6));

推荐