Might I suggest that this method return `this.hash` so that the `getHash()` can simply call `return generateHash().toBytes()` and the `getHexHash()` can simply call `return generateHash().toString()`. That way, `this.hash` is encapsulated completely within the `generateHash()` method, making it very easy to make the class thread safe by making the `generateHash()` method synchronized.