我正在使用此功能生成唯一的 api 密钥并存储到数据库中。
strtoupper( md5( uniqid(rand(), TRUE ) ) );
是否有可能通过上述函数生成相同的哈希键???
我正在使用此功能生成唯一的 api 密钥并存储到数据库中。
strtoupper( md5( uniqid(rand(), TRUE ) ) );
是否有可能通过上述函数生成相同的哈希键???
uniqid 是以毫秒为单位的时间,将其与随机前缀结合起来,这是极不可能的。
有关 uniqid 的更多信息,请参见下文: PHP: uniqid - Manual
尽管uniqueid函数生成的唯一值确实非常唯一,但是在使用MD5哈希算法时还是有相当大的可能发生冲突(即不同的值会产生相同的哈希值)。事实上,MD5 被US-CERT认为是“密码损坏且不适合进一步使用” ,如果您担心冲突,您应该考虑改用 SHA256/SHA512 算法。