我在编码密码方面遇到了一些问题,我该怎么做。编码类型md5
digest(data text, type text) returns bytea;
CREATE OR REPLACE FUNCTION md(bytea) returns text AS $$
SELECT encode(digest($1, 'sha1'), 'md5')
$$ LANGUAGE SQL STRICT IMMUTABLE;
INSERT INTO "login"(login, password, employee_id)
VALUES ( 'email',crypt('password', md('md5')), 1);
*** 错误 strong>***
ERROR: syntax error at or near "digest"
SQL state: 42601
Character: 1
最佳答案
digest(data text, type text) returns bytea;
是无效语法。
我建议改用bcrypt
。不需要额外的函数定义:
INSERT into "login" (login, password, employee_id)
VALUES ('email',crypt('password', gen_salt('bf'));
稍后...
UPDATE table SET password = crypt('password',gen_salt('bf'))
并检查密码:
SELECT ... FROM table
WHERE password is NOT NULL
AND password = crypt('password-to-test',password);
Crafted Software推荐使用Bcrypt和 Jeff Atwood . official pgcrypto docs也可能感兴趣。
关于postgresql - 如何使用 PostgreSQL 加密密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18656528/