PostgreSQL中的chkpass模块

目录

文档用途

详细信息

文档用途

chkpass模块使用了一个名为chkpass的数据类型,此类型适用于存储加密的口令。

详细信息

1.chkpass模块的基本功能

使用chkpass模块后,每个口令在输入的时候就自动的被转换为加密的形式,而且总是以加密的形式存储。进行比较时,可简单地与明文口令比较,比较函数会先对明文口令进行加密。

如果在输入的字符串之前加上冒号,它会被认为是已经加密的口令,因此在存储的时候就不会有进一步的加密措施,这样就允许了之前被加密过的口令能够被输入。

密码输出的时候,会有一个冒号作为前缀。这使得转储和重载口令时不需要重新对他们进行加密。如果不想在加密的口令前有冒号,可以使用raw()函数。

需要注意的是,只有口令中最开始的8个字符会被考虑进行加密操作。

chkpass类型是不能被索引的。

2.使用示例

创建扩展:

postgres=# create extension chkpass;

CREATE EXTENSION

创建测试表:

postgres=# create table chktest(id integer, passswd varchar(32) , pwd1 chkpass, pwd2 chkpass, pwd3 chkpass, pwd4 chkpass);

CREATE TABLE

插入数据:

postgres=# insert into chktest values(1,:'password_string1' ,substring(rpad(:'password_string1',32),1,8)::chkpass ,substring(rpad(:'password_string1',32),9,8)::chkpass,substring(rpad(:'password_string1',32),17,8)::chkpass, substring(rpad(:'password_string1',32),25,8)::chkpass);

INSERT 0 1

postgres=# insert into chktest values(2,:'password_string2' ,substring(rpad(:'password_string2',32),1,8)::chkpass ,substring(rpad(:'password_string2',32),9,8)::chkpass,substring(rpad(:'password_string2',32),17,8)::chkpass, substring(rpad(:'password_string1',32),25,8)::chkpass);

INSERT 0 1

查询表中的所有记录:、

更多详细信息请登录【瀚高技术支持平台】查看

https://support.highgo.com/#/index/docContent/7c3963dc0243678d

猜你喜欢

转载自blog.csdn.net/pg_hgdb/article/details/88732516