【Java】SHA256でハッシュ値を計算する

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Java】SHA256でハッシュ値を計算する

2023-2-1 |

Javaでハッシュ値(SHA256)を求めたい!

概要

今回の記事では、Javaでハッシュ値(SHA256)を求める手順を掲載する。

ハッシュ値を求めるアルゴリズムはいろいろあるんだけども、今回はSHA-2のバリエーションの1つであるSHA256を紹介する。

仕様書

  • openjdk version "11.0.12" 2021-07-20

手順書

SHA256(SHA-2)でハッシュ値を計算してコンソールに出力するサンプル。

MessageDigest sha256 = null;

try
{
    sha256 = MessageDigest.getInstance("SHA-256");
}
catch (NoSuchAlgorithmException e)
{
    throw new RuntimeException(e);
}

byte[] result = sha256.digest("https://blog.nekonium.com".getBytes());

System.out.println("hash:" + String.format("%040x", new BigInteger(1, result)));

サンプルを実行すると当サイトのURLのhttps://blog.nekonium.comのハッシュ値をSHA256(SHA-2)で計算して下記のようにコンソールに出力する。

hash: 25071def8c9caf1a9454905a2b4ee18c048c1245a6f81a7a9f14419bad8e040d

説明

MessageDigest.getInstance()は、trycatchで例外を対応しないとビルド時に怒られる。(怒られた)

MessageDigest.getInstance("MD5")とするとMD5のハッシュ関数を使ってハッシュ値を計算するようになる。

まとめ(感想文)

当サイトで取り扱った言語でハッシュ値の求めやすさに順位をつけると下記のような感じ。(個人的な感想)

[簡単] PHP >>>>> Java >> C# > VBA [めんどい]