JavaでSHA-256ハッシュコードを生成する
SHA-256 アルゴリズムは、256 ビットのハッシュ値を生成する広く使用されているハッシュ関数です。この投稿では、Java で SHA-256 ハッシュコードを生成するさまざまな方法について説明します。 MessageDigest
クラス、Guava、およびApacheCommonsライブラリ。
1.使用する MessageDigest
class
アイデアは、SHA-256メッセージダイジェストのインスタンスを使用して取得することです java.security.MessageDigest
class getInstance()
ダイジェストアルゴリズムを使用するメソッド。次に、 digest(input)
最初に呼び出すメソッド update(input)
、入力アレイをupdateメソッドに渡してから、 digest()
。に明示的に電話をかけることができます update()
大きな入力に対して数回メソッド。
に注意してください java.xml.bind
Java SE 9以降のデフォルトのクラスパスには含まれなくなりました。Java11では、これらはJDKから完全に削除されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import javax.xml.bind.DatatypeConverter; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; class Main { public static void main(String[] args) throws Exception { String password = "SHA-256"; MessageDigest md = MessageDigest.getInstance("SHA-256"); byte[] digest = md.digest(password.getBytes(StandardCharsets.UTF_8)); String sha256 = DatatypeConverter.printHexBinary(digest).toLowerCase(); //SHA-256メッセージダイジェストを出力します System.out.println(sha256); } } |
出力:
bbd07c4fc02c99b97124febf42c7b63b5011c0df28d409fbb486b5a9d2e615ea
2.Guavaライブラリの使用
また、SHA-256ハッシュコードを生成するためにGoogleのGuavaライブラリなどのサードパーティライブラリを使用することもできます。これを以下に示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import com.google.common.base.Charsets; import com.google.common.hash.HashCode; import com.google.common.hash.Hasher; import com.google.common.hash.Hashing; class Main { public static void main(String[] args) throws Exception { String password = "SHA-256"; Hasher hasher = Hashing.sha256().newHasher(); hasher.putString(password, Charsets.UTF_8); HashCode sha256 = hasher.hash(); System.out.println(sha256); } } |
出力:
bbd07c4fc02c99b97124febf42c7b63b5011c0df28d409fbb486b5a9d2e615ea
3. ApacheCommonsLangの使用
あるいは、ApacheCommonsライブラリを使用することもできます。 org.apache.commons.codec.digest.DigestUtils
置き換えるクラス MessageDigest
クラス。
1 2 3 4 5 6 7 8 9 10 11 12 |
import org.apache.commons.codec.digest.DigestUtils; class Main { public static void main(String[] args) throws Exception { String password = "SHA-256"; String sha256 = DigestUtils.sha256Hex(password); System.out.println(sha256); } } |
出力:
bbd07c4fc02c99b97124febf42c7b63b5011c0df28d409fbb486b5a9d2e615ea
これで、JavaでSHA-256ハッシュコードを生成できます。