java - 如何将此 MD5 编码 PHP 转换为 java

标签 java php md5

我只是用 PHP 编写了这样的代码

$hash = md5("testtesttest", TRUE);
echo $hash.'<br>';
$hash = md5($hash . "test", TRUE);
echo $hash.'<br>';

在java中首先使用2行,它与我的代码配合得很好

    public static void main(String[] args) {
        // String str = new String(md5x16("test"));
        byte[] input = md5x16("testtesttest");
        String t = new String(input);
        System.out.println(t);
    }

    public static byte[] md5x16(String text) {
        try {
            MessageDigest digester = MessageDigest.getInstance("MD5");
            digester.update(text.getBytes());
            byte[] md5Bytes = digester.digest();
            return md5Bytes;

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

但是在 PHP 的第 3 行和第 4 行中,我无法在 Java 中执行相同的操作 如果我解析为 String 并向其添加“测试”,我将使用 PHP 得到另一个结果

最佳答案

伊拉克利斯应该是对的。 md5() 默认为您提供十六进制编码的输出字符串。您只能像在 Java 中那样通过为可选的 $raw_output 参数传入 TRUE 来获取未编码的字节。

the lengths range from 29 to 32

hexString.append( Integer.toHexString(0xFF & message[ i ] ) );
function makeBrokenMD5($s) {
$hash= md5($s, TRUE);
$bytes= preg_split('//', $hash, -1, PREG_SPLIT_NO_EMPTY);
$broken= '';
foreach ($bytes as $byte)
    $broken.= dechex(ord($byte));
return $broken;

}`

关于java - 如何将此 MD5 编码 PHP 转换为 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883152/

相关文章:

java - 我能否知道所使用的加密算法,以便我可以编写自己的登录代码?

java - 从 JSP 中的 HashMap 检索值

php - Doctrine2 - 列在刷新之前更改为空

php - Javascript 相当于 PHP 的 md5() ,它也适用于多字节字符串?

Java Swing : Rainbow border for a JComponent

java - 我需要帮助弄清楚如何阻止我的程序抛出 NullPointerException

php - 尝试运行时出现代码错误 "Class Yii not found"

php - mysql查询中如何绑定(bind)参数?

regex - 正则表达式: searching an arbitrary file for MD5

java - 简单的用户名和密码验证java