All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.yourinspiration.jexpresso.baseauth.impl.MD5PasswordEncoder Maven / Gradle / Ivy

package de.yourinspiration.jexpresso.baseauth.impl;

import de.yourinspiration.jexpresso.baseauth.PasswordEncoder;
import org.pmw.tinylog.Logger;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * Password encoder for MD5 algorithm.
 *
 * @author Marcel Härle
 */
public class MD5PasswordEncoder implements PasswordEncoder {

    private final String MD5_ALGORITHM = "MD5";

    @Override
    public boolean checkpw(final String plaintext, final String encoded) {
        try {
            final MessageDigest md5Digest = MessageDigest.getInstance(MD5_ALGORITHM);
            final byte[] bytes = md5Digest.digest(plaintext.getBytes());

            final String encodedPlainText = SecurityUtils.toHex(bytes);

            return encodedPlainText.equals(encoded);
        } catch (NoSuchAlgorithmException e) {
            Logger.error("Error creating md5 message digest");
            return false;
        }
    }

    @Override
    public String encode(String plaintext) {
        try {
            final MessageDigest md5Digest = MessageDigest.getInstance(MD5_ALGORITHM);
            final byte[] bytes = md5Digest.digest(plaintext.getBytes());
            return SecurityUtils.toHex(bytes);
        } catch (NoSuchAlgorithmException e) {
            Logger.error("Error creating md5 message digest");
            return null;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy