PostgreSQL 生成 UUID 的两种不同方式:gen_random_uuid 与 uuid_generate_v4?

17 postgresql uuid postgresql-extensions

下面两个函数有什么区别

他们在幕后是一样的吗?使用一个有任何性能影响吗?

Jas*_*sen 17

他们是一样的吗?

不。

uuid-osspPostgres 文档建议使用gen_random_uuid()If you only need random -generated (version 4) UUIDs,

uuid-ossp 扩展还提供了其他类型的 UUID(例如基于 mac-addresses)

区别?

我查看了来源,发现

  • uuid_generate_v4() 使用 arc4random 来确定随机部分。

  • gen_random_uuid() 使用财富代替。

除此之外,他们做同样的工作。

  • arc4random vs. fortuna,你为什么要关心?尽我所能告诉 arc4random *可能*有一些漏洞。Fortuna 似乎更安全。https://en.wikipedia.org/wiki/Fortuna_(PRNG) https://en.wikipedia.org/wiki/RC4#RC4-based_random_number_generators https://security.stackexchange.com/questions/85601/is-arc4random -安全足够/172905#172905 (2认同)