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 を用いてメッセージダイジェストを生成します.結果は,標準出力に出力されます.