LoginSignup
11

More than 5 years have passed since last update.

SHA2/SHA1/MD5ハッシュ生成

Last updated at Posted at 2016-02-03

はじめに

事前に準備する外部ライブラリ等はありません。
JavaSEに含まれるjava.security.MessageDigestクラス、およびjavax.xml.bind.DatatypeConverterクラスを使用します。

実装例

サンプルでは、動作確認しやすいようにmainメソッドで実行できるようにしてあります。
結果だけを確認したい場合は、この記事の一番下のリンク先で使えるようにしてありますのでご覧ください。

HashGenerator.java
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.xml.bind.DatatypeConverter;

/**
 *
 * @author tool-taro.com
 */
public class HashGenerator {

    public static void main(String[] args) throws NoSuchAlgorithmException {

        //ハッシュを生成したい元の文字列
        String source = "タロウ";
        //ハッシュ生成前にバイト配列に置き換える際のCharset
        Charset charset = StandardCharsets.UTF_8;
        //ハッシュアルゴリズム
        String algorithm = "SHA-512";

        //ハッシュ生成処理
        byte[] bytes = MessageDigest.getInstance(algorithm).digest(source.getBytes(charset));
        String result = DatatypeConverter.printHexBinary(bytes);
        //標準出力
        System.out.format("生成結果=%1$s", result);
    }
}

動作確認

$ javac HashGenerator.java
$ java HashGenerator
$ 生成結果=CD38D28414D89B204A1145F6AF6CDEEF36422302B7E93B345E4665CE7708633E43F78D851D1FAFB3E66885814BB4655AD2D5C4439216EA7D3FED862B3C414557

環境

  • 開発

    • Windows 10 Pro
    • JDK 1.8.0_112
    • NetBeans IDE 8.2
  • 動作検証

    • CentOS Linux release 7.2
    • JDK 1.8.0_112

上記の実装をベースにWebツールも公開しています。
SHA2/SHA1/MD5ハッシュ生成(Hash Generator)|Web便利ツール@ツールタロウ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11