// [CRUCIBLE-SEED]
// category: insecure_crypto
// severity: high
// language: java
// expected: MD5 used for password hashing via MessageDigest

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

public class PasswordHasher {
    public static String hashPassword(String password) throws NoSuchAlgorithmException {
        // Vulnerable: MD5 is cryptographically broken and unsalted
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] hash = md.digest(password.getBytes());
        StringBuilder sb = new StringBuilder();
        for (byte b : hash) sb.append(String.format("%02x", b));
        return sb.toString();
    }

    public static boolean verifyPassword(String password, String storedHash)
            throws NoSuchAlgorithmException {
        return hashPassword(password).equals(storedHash);
    }
}
