JavaでSHA256を計算する
提供: Java入門
スポンサーリンク
JavaでSHA-256のハッシュ値を計算するには、 MessageDigestを利用します。
読み方
- SHA-256
- しゃ にごろ
- MessageDigest
- めっせーじ だいじぇすと
概要
MessageDigestが扱えるアルゴリズムは、以下の通りです。
- MD2
- MD5
- SHA-1
- SHA-256
- SHA-384
- SHA-512
ハッシュアルゴリズムの選択は、インスタンス作成時に文字列で指定します。
MessageDigest md = MessageDigest.getInstance("アルゴリズム名");
サンプルでは、SHA-256を指定しています。getInstance()の引数を変更することで、他のハッシュアルゴリズムのハッシュ値を求めることもできます。
ソースコード
以下のソースコードは、文字列 hoge の SHA-256の値を計算し、16進数に変換して、表示するプログラムです。
/* * SHA2.java * Copyright (C) 2015 kaoru <kaoru@localhost> */ import java.security.MessageDigest; class SHA2 { public static void main(String[] args) { String text = "hoge"; byte[] cipher_byte; try{ MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(text.getBytes()); cipher_byte = md.digest(); StringBuilder sb = new StringBuilder(2 * cipher_byte.length); for(byte b: cipher_byte) { sb.append(String.format("%02x", b&0xff) ); } System.out.println( sb ); } catch (Exception e) { e.printStackTrace(); } } }
コンパイル
$ javac SHA2.java
実行例
sha256コマンドでhogeを計算した結果、SHA2.java と同じ結果が得られたことが確認できました。
$ java SHA2 ecb666d778725ec97307044d642bf4d160aabb76f56c0069c71ea25b1e926825 $ sha256 -s hoge SHA256 ("hoge") = ecb666d778725ec97307044d642bf4d160aabb76f56c0069c71ea25b1e926825
関連項目
ツイート
スポンサーリンク