为了生成一个唯一的标记来关联 SQL 中的某些信息,在查看了一些文档之后,我看到了生成唯一标记的选项。此令牌将出现在两个表中,并且在两个表中的每一个中都存在多行。我看到两个选项,用于 32 个字符的令牌。
选项1
$ttime = microtime(true)*1000;
$token = $ttime . str_shuffle("ABCDEFGHIJKLNMOPQR");
选项 2
$token = bin2hex(random_bytes(16));
我的疑问来自阅读,不建议使用 microtime() 函数生成唯一令牌。
另一种方法是使用
uniqueid()
, 根据当前时间(以微秒为单位)获取带前缀的唯一标识符。示例 A:
手册:uniqid
现在,如果你想用它
openssl_random_pseudo_bytes
来生成加密安全令牌,它会生成一个伪随机字节字符串,字节数由长度参数决定。示例 B:
手册:openssl_random_pseudo_bytes
编辑: 现在我有更多的时间,我会给你一个我很久以前从SO保存的例子,我很喜欢。
例如,如果您想加密一个 id 并将此加密存储在数据库中,然后将其解密以使用此ID,您可以例如创建一个类似示例的函数。
示例 C:
也许这些会帮助你:
例子:
我希望我有帮助!
我用这个:
我不使用
microtime
,但是,嘿,这是一个选项。贝西斯我有一个个人的,我把它放在一个函数中,它可以根据它发送的数字生成字符数,它允许它生成大写和小写字符以及数字