Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Como autenticar base64?

Oi gente, se eu criptografar minha senha no banco com base64. Qual o password encoder eu devo usar no configure? BCrypt sempre retorna um erro pra mim.

5 respostas

Eu fiz do jeito abaixo pra funcionar, mas não sei se é a melhor opção.

@Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsServiceImpl).passwordEncoder(NoOpPasswordEncoder.getInstance());
    }

Oi Leonardo,

Utilizar o NoOpPasswordEncoder não é recomendado pelo time do Spring, pois não é seguro e deve ser utilizado apenas para testes.

Qual problema você está tendo com o BCrypt?

Alternativas ao BCrypt seriam: Pbkdf2PasswordEncoder ou SCryptPasswordEncoder.

Só pra contextualizar. Minha app recebe uma senha String aberta. eu dentro do código converto para base64 (no banco também vai estar base64).

Se eu usar BCrypt da o seguinte erro: Encoded password does not look like BCrypt.

Não soube resolver. :(

solução!

Oi Leonardo,

Como você ta fazendo base64 da senha, ao utilizar o BCrypt ele vai detectar que a senha não está no formato correto dele.

Mas tem algum motivo em especial para você utilizar o base64?

Não rola de pegar a senha em texto aberto da aplicação, fazer o encoding via BCrypt e armazenar no banco sem utilizar base64 ?

Oi Rodrigo, desculpa a demora para responder. Conversei com o pessoal e vamos alterar no futuro para bcrypt mesmo. É que é dados legado, por isso eu tava tentando achar uma alternativa com base64. Valeu a ajuda! p/