🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# F.6\. chkpass 该模块实现用于存储加密密码的数据类型`chkpass`。 每个密码自动转换为加密进入,并且总是存储加密的。 为了比较,简单比较清晰的文本密码,并且在比较之前比较函数将对它加密。 如果密码容易被破解,那么代码中有规定可以报告错误。 然而,目前只是stub,什么都不做。 如果输入字符串前面加冒号, 它被认为是一个已加密密码,没有进一步加密存储。 这允许先前加密密码进入。 在输出上,冒号在前。这可能备份并且重载没有重新加密的密码。 如果你想要不带冒号的加密密码,那么使用`raw()`函数。 这允许你使用带有类似Apache的`Auth_PostgreSQL`模块的类型。 加密使用标准的Unix函数`crypt()`, 所以它会遭受该函数所有常见局限性; 值得注意的是,只考虑前八个字符的密码。 注意`chkpass`数据类型是不可索引的。 示例用法: ``` test=# create table test (p chkpass); CREATE TABLE test=# insert into test values ('hello'); INSERT 0 1 test=# select * from test; p ---------------- :dVGkpXdOrE3ko (1 row) test=# select raw(p) from test; raw --------------- dVGkpXdOrE3ko (1 row) test=# select p = 'hello' from test; ?column? ---------- t (1 row) test=# select p = 'goodbye' from test; ?column? ---------- f (1 row) ``` ## F.6.1\. 作者 D'Arcy J.M. Cain (`<[darcy@druid.net](mailto:darcy@druid.net)>`)