I am porting Java code to PHP code. In Java, I have a SHA256 hash as shown below:
public static String hashSHA256(String input) throws NoSuchAlgorithmException { MessageDigest mDigest = MessageDigest.getInstance("SHA-256"); byte[] shaByteArr = mDigest.digest(input.getBytes(Charset.forName("UTF-8"))); StringBuilder hexStrBuilder = new StringBuilder(); for (int i = 0; i < shaByteArr.length; i++) { hexStrBuilder.append(Integer.toHexString(0xFF & shaByteArr[i])); } return hexStrBuilder.toString(); }
In PHP, I have a hash as shown below:
$hash = hash("sha256", utf8_encode($input));
I run the sample code as with input = "test" . However, I have two hash lines that do not match:
Java: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2bb822cd15d6c15b0f0a8 PHP: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
Can someone explain to me why and how to make them fit together? Please note that I cannot change the Java implementation code, only to modify PHP.
Really appreciate it!
java php hash sha256
user2663561
source share