暗号プログラム (Java言語版)

Java言語で記述された暗号関連のプログラムのサンプルを紹介します.

パッケージ名は,Blanclux.tools としていますので,コンパイル時にはディレクトリ構成に注意して下さい.

署名生成

指定されたファイルに対する署名を生成するプログラム(Javaアプリケーション)です.ソースプログラムは,Sign.java です.

プログラムは,javaコマンドにより以下のよう起動します.

 java Blanclux.tools.Sign keyFile textFile signFile

  パラメータ:
    keyFile: 秘密鍵ファイル名 (PKCS#8形式)
    textFile: 署名対象ファイル
    signFile: 署名ファイル名

指定されたファイル textFile に対して,秘密鍵 keyFile を用いて署名を生成しファイル signFile に格納します.

PKCS#8形式の秘密鍵は,鍵生成プログラム にて生成できます.

以下のパラメータが使われます.

これらを変更する場合は,ソースの対応する変数の値を変えてください.

署名検証

指定されたファイルに対する署名の正当性を検証するプログラム(Javaアプリケーション)です.ソースプログラムは,Verify.java です.

プログラムは,javaコマンドにより以下のよう起動します.

 java Blanclux.tools.Verify keyFile textFile signFile

  パラメータ:
    keyFile: 公開鍵ファイル名 (X509形式)
    textFile: 署名対象ファイル
    signFile: 署名ファイル名

指定されたテキストファイル textFile と署名 signFile に対し,公開鍵 keyFile を用いて署名を検証します.検証結果は,"OK" または "NG" として出力されます.

X509形式の公開鍵は,鍵生成プログラム にて生成できます.

以下のパラメータが使われます.

これらを変更する場合は,ソースの対応する変数の値を変えてください.

ダイジェスト生成

指定されたデータに対するメッセージダイジェストを生成するプログラム(Javaアプリケーション)です.ソースプログラムは,Digest.java です.

プログラムは,javaコマンドにより以下のよう起動します.

 java Blanclux.tools.Digest algName data [provider]

  パラメータ:
    algName: アルゴリズム名 (MD5, SHA1, SHA-256など)
    data: 対象データ(任意の文字列)
    provider: 暗号プロバイダ名(省略時は SUN)

指定されたテキストデータ data に対し指定されたアルゴリズム algName を用いてメッセージダイジェストを生成します.結果は,標準出力に出力されます.

inserted by FC2 system