我需要在 md5 中编码一个字符串,然后将它的字节转换为 2 个字符的十六进制编码。
我有这个简短的 JAVA 片段,需要将其转换为 PHP。
// Condensed the message and do MD5
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] data = cleartext.getBytes(ENCODING);
md.update(data);
byte[] digestedByteArray = md.digest();
// Convert digested bytes to 2 chars Hex Encoding
md5String = HexUtils.bytesToHex(digestedByteArray);
} catch (NoSuchAlgorithmException ns) {
ns.printStackTrace();
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
我不太确定如何在 PHP 中实现这一点。ENCODING
是UTF-8
我在 PHP 中拥有的是
$md5String = md5($clearText);
$hexString = "";
for($i = 0; $i < strlen($md5String); $i++) {
$hexString .= dechex(ord($md5String[$i]));
}
但是输出不同,所以我认为我在十六进制转换上失败了。
那么这个 JAVA 片段到 PHP 的正确端口是什么?