1
resposta

[Sugestão] Algoritmo mencionado

Olá,

Aqui está o algoritmo mencionado pelo professor, caso alguém queira. Vi que sugeriram a implementação na transcrição da aula mas como no momento em que escrevo ainda não foi colocado, vou colocar aqui caso alguém precise:

public class CifradorDeSenhaComMD5 implements CifradorDeSenha{

    @Override
    public String cifrarSenha(String senha) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(senha.getBytes());
            byte[] bytes = md.digest();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < bytes.length; i++) {
                sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("erro ao gerar hash da senha");
        }
    }

    @Override
    public boolean validarSenhaCifrada(String senhaCifrada, String senha) {
        return senhaCifrada.equals(cifrarSenha(senha));
    }
1 resposta

Olá Bruno,

Obrigado por compartilhar o algoritmo mencionado pelo professor! Com certeza será útil para quem precisar cifrar senhas utilizando o MD5 em suas aplicações Java.

Para quem não sabe, o MD5 é um algoritmo de criptografia que gera um hash de 128 bits a partir de uma entrada de dados. É comumente utilizado para armazenar senhas de forma segura em bancos de dados.

O código que você compartilhou implementa a interface CifradorDeSenha e utiliza o MD5 para cifrar a senha recebida como parâmetro. Em seguida, é gerado um hash a partir dos bytes cifrados e retornado como uma string.

Além disso, o código também implementa o método validarSenhaCifrada, que recebe a senha cifrada e a senha em texto claro e retorna verdadeiro se a senha cifrada corresponder à senha em texto claro.

Espero ter ajudado e bons estudos!