Как зашифровать мой пароль в postgreSQL? - PullRequest
0 голосов
/ 24 октября 2018

Пытаясь зашифровать мою функцию и вернуть ее обратно, нужна ваша помощь, скажите, пожалуйста, что я делаю не так?

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 голосов
/ 24 октября 2018

Вы используете пакет 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 ;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...