When I trying to hash string in java 8 using SHA-256
with different library such as MessageDigest, guava and apache the result is not same in the online tool here what I do:
public static String hash(String planText){
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
byte[] hashed = messageDigest.digest(planText.getBytes(StandardCharsets.UTF_8));
String encodeHash = Base64.getEncoder().encodeToString(hashed);
return encodeHash;
}
for this String:
<root>
<test>
abc
</test>
</root>
the return of this function is lPJDgg2R+x+/H6qHZ59lACAemdF7/JFeQex+otuQ7Xk=
.
for the online tool is c8awdfivV+DgU43KR5uK8xEh5ginLGATnJdyfs1573w=
Hash generator tool.
the benefit of using hashing to achieve data integrity, so there something I miss to do?
A better way to address this would be to parse string line by line, then remove indents, whitespaces and also trim(if required).