如何在PostgreSQL中加密我的密码?

时间:2018-10-24 06:16:42

标签: postgresql

尝试加密地雷功能并将其找回,需要您的帮助告诉我,我做错了什么?

SELECT user_id
FROM users
WHERE email = 'Natali@gmail.com' AND u_password = crypt(u_password, '@kjvfhjh88976');
// Null result

INSERT INTO users (user_id, nick_name, email, u_password)
VALUES
    (87678655, 'Natali1990@', 'Natali@gmail.com', crypt('@kjvfhjh88976', gen_salt('bf')));


SELECT user_id FROM users WHERE email = 'Natali@gmail.com'; // Working

enter image description here

1 个答案:

答案 0 :(得分:2)

您错误地使用了pgcrypto软件包,并且考虑到它令人困惑,这并不奇怪。您当前的插入内容看起来不错:

INSERT INTO users (user_id, nick_name, email, u_password)
VALUES
    (87678655, 'Natali1990@', 'Natali@gmail.com',
        CRYPT('@kjvfhjh88976', GEN_SALT('bf')));

然后,使用SELECT来验证用户身份,如下所示:

SELECT u_password = CRYPT('@kjvfhjh88976', u_password)
FROM users
WHERE email = 'Natali@gmail.com';

如果用户输入正确的密码,它将返回true。您可以在Postgres documentation;

中阅读有关此内容的更多信息。