postgresql - 如何使用 PostgreSQL 加密密码?

标签 postgresql encryption password-encryption

我在编码密码方面遇到了一些问题,我该怎么做。编码类型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/

相关文章:

c - 如果已知 salt 和密码哈希,则暴力强制 crypt()?

postgresql - 如何在 PostgreSQL 11.8 全文搜索中搜索带连字符的整个单词?

sqlite - SQLite 中有关纪元的问题

django - 这个查询集循环是最优的吗?

javascript - JavaScript 中的 RSA 签名

oracle - 解密 PL/SQL Developer 上存储的密码

mysql - 获取MYSQL加密 key

postgresql - Azure Function 创建了太多与 PostgreSQL 的连接

java - 加密HSQLDB : select CRYPT_KEY not working

Hadoop KMS 与 HDFS keystore : No FileSystem for scheme "hdfs"