【Java】HmacUtilsを使ってHMACメッセージダイジェストを生成する

2020年11月23日

HmacUtilsを使ってHMACメッセージダイジェストを生成する

Apache Commons Codecで提供されているHmacUtilsクラスを利用することでメッセージダイジェストを簡単に生成することができます。

公式ページ:Apache Commons Codec

Apache Commons Codecのインストール

本記事の例ではSpring BootプロジェクトにApache Commons Codecを追加します。build.gradleに以下のように追加します。

dependencies {
...
    implementation group: 'commons-codec', name: 'commons-codec', version: '1.15'
...
}

追加後Gradle Syncを行います。

メッセージダイジェストの生成

以下のように、メッセージダイジェストの計算に使用するキーとアルゴリズムを指定してHmacUtilsクラスのインスタンスを生成します。

hmacHexメソッドを使用してメッセージダイジェストを生成することができます。

参考ページ:Apache Commons Codec 1.15 API

public class HmacTest {

    @Test
    public void test1() {

        // メッセージダイジェストの計算に使用するキー
        var key = "xxxxxxxxxx";
 
        // メッセージダイジェストの計算対象のデータ
        var data = "test";

     // 使用するアルゴリズムとキーを指定してHmacUtilsのインスタンスを生成
        var hmac = new HmacUtils(HmacAlgorithms.HMAC_SHA_256, key.getBytes());

        // メッセージダイジェストを生成
        var digest = hmac.hmacHex(data);

        // 標準出力に表示
        System.out.println(digest);
        
    }
}

この例ではメッセージダイジェストが「56fb55de060a2a6ac31ddc233ab52ac1192000f4fb34e10be6089ee0a67d7af1」となります。