postgres BCryptPasswordEncoder не работает

Я работаю над приложением Spring Security и использую BCryptPasswordEncoder для кодирования паролей в базе данных. Я использовал следующий генератор

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

public class PasswordEncoderGenerator {

    public static void main(String[] args) {

        int i = 0;
        while (i < 10) {
            String password = "1234";
            BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
            String hashedPassword = passwordEncoder.encode(password);

            System.out.println(hashedPassword);
            i++;
        }

    }

}

Я храню учетные данные в базе данных postgres. Я обновил свою таблицу вручную, вставив вывод этой короткой программы, потому что было всего несколько пользователей. Чего я хочу добиться, так это создать запрос на обновление, который позволит мне зашифровать пароль с помощью запроса sql.

Я установил модуль postgresql-contrib libpq-dev и теперь пытаюсь выполнить следующий запрос:

UPDATE users 
SET login_pin = crypt('0000', gen_salt('bf')) 
WHERE user_id = '1';

Мне не удалось найти bcrypt в официальной документации postgres, и я добавил «bf» в функцию gen_salt(). http://www.postgresql.org/docs/8.3/static/pgcrypto.html

Затем я проверил свою базу данных, и она вставила строку длиной 60 символов с некоторыми символами, но кажется, что пин-код 0000 неверен. Мне нужно использовать bcrypt вместо bf. Кто-нибудь может помочь?

Спасибо


person skywalker    schedule 29.07.2015    source источник
comment
Как кажется, что это неправильно? И я бы предложил использовать немного более новую документацию (ссылки в верхней части страницы), если вы действительно не используете версию 8.3.   -  person Sami Kuhmonen    schedule 29.07.2015
comment
возможный дубликат Как я могу хэшировать пароли в postgresql?   -  person Sami Kuhmonen    schedule 29.07.2015