PHP API密钥生成器

42

有没有人知道适用于PHP的API密钥生成脚本/类?该类应该具有generate方法,可以生成一个密钥,并且有isValid()方法,用于检查密钥是否有效。


1
如果您能提供有关预期用途的更多信息,回答可能会更简单...密钥是否存储在某个地方 - 比如数据库?是否存在任何客户端/服务器通信? - J.C. Inacio
GUID与我的答案中的#1相同。我们尝试了UUID。34个字符对我们来说太大了。它看起来像“3B90E4C1-C4D4-D204-ECB3-0CDB0F0A2E50”。如果您可以接受,请使用它。 - ZZ Coder
12个回答

0

GUID 可以使用,但不具有加密安全性。

服务器响应使用 microtime() 或 mt_rand 上的 md5 或 sha1 哈希方法。

哈希 uniqid、uuid 或 timestamp 不一定会创建唯一结果!实际上,哈希会增加碰撞的几率,因此我强烈建议不要这样做。


0
你需要做的是生成一个随机字符串并将其保存在数据库中,然后可以检索它并查看是否匹配。
要生成带有破折号的随机API密钥,我使用以下代码。
$hex = random_bytes(24);
$hex = bin2hex($hex);
$hex = strtoupper($hex);
$hex = wordwrap($hex , 8, '-' , true);
echo $hex;

它将打印出类似这样的内容 -> 5A1C53E3-067DAE70-3AE1C5EE-3ABCD8D7-66B92582-DB2845F9

如果您需要更短或更长的字符串,只需增加/减少 random_bytes 的数量即可


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接