How to hash some string with sha256 in Java?

Ivana picture Ivana · Apr 3, 2011 · Viewed 345.1k times · Source

How can I hash some string with sha256 in Java? Does anybody know of any free library for this?

Answer

Jon Skeet picture Jon Skeet · Apr 3, 2011

SHA-256 isn't an "encoding" - it's a one-way hash.

You'd basically convert the string into bytes (e.g. using text.getBytes(StandardCharsets.UTF_8)) and then hash the bytes. Note that the result of the hash would also be arbitrary binary data, and if you want to represent that in a string, you should use base64 or hex... don't try to use the String(byte[], String) constructor.

e.g.

MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(text.getBytes(StandardCharsets.UTF_8));