有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在给定修改字符串的方法的情况下,将修改后的字符串反转回MD5哈希?

我正在使用一些MD5散列,这些散列已使用下面所示的方法转换为数字序列。给定下面的代码和示例哈希,我如何“反转”getString()方法的效果,并将数字序列转换回MD5哈希

例如,encrypt("umadbro");返回“15189186158245494170109603025017352201241”,因为MD5哈希是通过getString()方法传递的。“umadbro”的MD5哈希是9759BA9EF6FE5EAA6D3C1EFAAD3C9F1。我需要一个方法,它接受由getString()方法修改的数字字符串,并将其转换为MD5哈希。例如:reverseMethod("1518918615824625494170109603025017352201241");应该输出“9759ba9ef6fe5eaa6d3c1efaad34c9f1”(输入参数是修改后的数字字符串,输出是原始字符串的MD5哈希)注意:我不是在寻找破解MD5哈希的方法。我只需要一个方法来逆转下面所示的getString()方法的效果

    public String encrypt(String source)
        {
            try
            {
                MessageDigest md = MessageDigest.getInstance("MD5");
                byte[] bytes = md.digest(source.getBytes());
                return getString(bytes);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            return null;
        }

    private String getString(byte[] bytes) //this takes an md5 hash and turns it into a string of numbers.
    // How can I reverse the effect of this method?
    {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < bytes.length; i++)
        {
            byte b = bytes[i];
            sb.append(0xFF & b);
        }
        return sb.toString();
}

共 (0) 个答案