PostgreSQL 9.3.1 中文手册 | ||||
---|---|---|---|---|
Prev | Up | Appendix F. 额外提供的模块 | Next |
uuid-ossp模块提供了一些函数用来生成通用唯一识别码(UUID), 它支持几种 UUID 产生的标准算法。同时它还提供了一些函数用来产生某些特定 的UUID常量。
这个模块依赖于 OSSP UUID 库, http://www.ossp.org/pkg/lib/uuid/.
Table F-30 中的函数用来产生 UUID。 相关标准 ITU-T Rec. X.667, ISO/IEC 9834-8:2005 和 RFC 4122 定义了四种生成 UUID 的算法, 分别在版本 1, 3, 4 和5中定义(没用版本2算法)每个算法适合于不同种类的应用使用。
Table F-30. UUID 生成函数
函数 | 描述 |
---|---|
uuid_generate_v1() | 这个函数生成版本1的 UUID。它的算法使用了计算机的MAC地址和时间戳。注意这种 UUID 泄露了生成它的计算机标识和生成它的时间,所以它可能不太适合对安全性要求较高的应用。 |
uuid_generate_v1mc() | 这个函数生成一个版本1的 UUID,但是使用一个随机多播 MAC 地址而不是计算机的真实的 MAC 地址。 |
uuid_generate_v3(namespace uuid, name text) | 这个函数使用给定的输入名字(name)在给定的命名空间(namespace)
中生成一个版本3的 UUID。给定的命名空间应该是调用表
Table F-31 中的函数
例如: SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); 参数 name会被使用 MD5 算法做哈希,所以从产生的 UUID 中不可能反向获得明文。 利用这个方法生成的 UUID 不需要随机算法不依赖任何运行相关的环境因素,因此生成过程是可重复的。 |
uuid_generate_v4() | 这个函数生成一个版本4的 UUID,它完全依靠随机数。 |
uuid_generate_v5(namespace uuid, name text) | 这个函数生成一个版本5的 UUID,它个工作过程类似于版本3的 UUID,但是它使用的 SHA-1 的哈希算法。因为 SHA-1 算法被认为比 MD5 算法更安全,所有应该尽量使用版本 5 而不版本 3。 |
Peter Eisentraut <[email protected]>