PHP 这种 key 叫什么?类似于 UUID

标签 php

在我正在处理的 Web 应用程序中,我需要生成长度过长的唯一 ID。比典型的 UUID 更长。另一个类似的网络应用程序使用如下所示的键:

cb745abbc635c03f0c259b65y5da57c06e12ef51

这些叫什么?以及如何在 PHP 中创建独特的?我试过 UID 方法,但是它们有点短。

最佳答案

您发布的示例是一个 40 个字符的十六进制字符串,因此看起来很像 SHA1 散列。 PHP 的内置 sha1() function会将输入字符串散列为这样的散列。

如果您将 microtime(true)(以微秒作为 float 获取当前时间)作为输入,您将获得一个唯一的时间值。将它与一个主机名连接起来,得到一个 40 个字符的全局唯一值。

echo sha1(microtime(true) . $hostname));

请注意,虽然这种类型的值作为数据库对象、用户 ID 等的唯一标识符可能令人满意,但不应将其视为加密安全,因为它的序列很容易被猜到。

关于PHP 这种 key 叫什么?类似于 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26007197/

相关文章:

php - mysql, ASC 现有mysql查询的数据

php - 在非类 PHP 文件中使用 "use"语句可以吗?

PHP面向对象问题

PHP 表单验证错误消息放置

php - 开放式购物车追踪

php - 使用php将 "< "插入到html文件中

php - 为 OpsWorks php 应用程序服务器堆栈设置 upload_max_filesize

php - 获取作为数组的 POST 变量

php - 从字符串中提取电子邮件地址 - php

php - 更新 php 破坏了德语 Codeigniter 1 站点中的 UTF-8 编码