Я работаю над приложением 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. Кто-нибудь может помочь?
Спасибо