postgresql 13 gen_salt 不是函数

Chr*_*son 2 postgresql

我正在使用 postgresql v13.2,并希望使用 pgcrypto 和 'bf' 算法替换导入 bcrypt 包。

附件是使用pgAdmin

我收到错误错误:函数 gen_salt(未知)不存在

安装的pgcrypto版本是1.3

测试表:

CREATE TABLE users (
 id SERIAL PRIMARY KEY,
 email TEXT NOT NULL UNIQUE,
 password TEXT NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

示例代码:

INSERT INTO users (email, password) VALUES (
 'johndoe@mail.com', 
 crypt('johnspassword', gen_salt('bf'))  
);
Run Code Online (Sandbox Code Playgroud)

错误消息:错误:函数 gen_salt(未知) 不存在 第 3 行: crypt('johnspassword', gen_salt('bf')) ); ^ 提示:没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。SQL 状态:42883 字符:95

nbk*_*nbk 5

您必须启用加密功能

CREATE TABLE users (
 id SERIAL PRIMARY KEY,
 email TEXT NOT NULL UNIQUE,
 password TEXT NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
INSERT INTO users (email, password) VALUES (
 'johndoe@mail.com', 
 crypt('johnspassword', gen_salt('bf'))  
);
Run Code Online (Sandbox Code Playgroud)
错误:函数 gen_salt(未知)不存在

第 3 行: crypt('johnspassword', gen_salt('bf'))
^ 提示:没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。

为每个数据库运行此命令,您使用加密函数

CREATE EXTENSION pgcrypto;
Run Code Online (Sandbox Code Playgroud)
INSERT INTO users (email, password) VALUES (
 'johndoe@mail.com', 
 crypt('johnspassword', gen_salt('bf'))  
);
Run Code Online (Sandbox Code Playgroud)

1 行受影响

db<>在这里摆弄