You're probably hashing different representations of the string, e.g. UTF-16 vs UTF-8.
StringTools provides ways to convert between encodings.
Also, from the 12.9.1 release notes:
The Blob.CopyFrom method now lets you initialise a Blob from a string. By default the Blob will be set to the Unicode form of the string; if you pass "utf8" as the second parameter it will initialise the Blob with the utf8-encoded form of the string.