Java言語で記述された暗号関連のプログラムのサンプルを紹介します.
パッケージ名は,Blanclux.tools としていますので,コンパイル時にはディレクトリ構成に注意して下さい.
各種暗号アルゴリズム用の鍵を生成するプログラム(Javaアプリケーション)です.ソースプログラムは,KeyGen.java です.
プログラムは,javaコマンドにより以下のよう起動します.
java Blanclux.tools.KeyGen [iniFile] パラメータ: iniFile: 初期設定ファイル名
秘密鍵暗号と公開鍵暗号の鍵をそれぞれ生成し,ファイルに格納します.
以下のパラメータがデフォルトで使われます.
パラメータとして iniFile を指定し,上記のパラメータを以下のように指定できます.
secKeyAlg = AES secKeyLen = 128
ファイルを共通鍵暗号を使って暗号化するプログラム(Javaアプリケーション)です.ソースプログラムは,SecCipher.java です.
プログラムは,javaコマンドにより以下のよう起動します.
java Blanclux.tools.SecCipher {-e|-d} keyFile inFile outFile パラメータ: -e | -d: 暗号化(-e)または復号(-d) keyFile: 共通鍵ファイル inFile: 入力ファイル名 outFile: 出力ファイル名
入力ファイルを暗号化または復号し,結果を出力ファイルに格納します.このとき,パラメータの keyFile で指定された共通鍵をを用いて暗号化/復号します. 共通鍵は, 鍵生成プログラム にて生成できます.
デフォルトで以下のパラメータが使われます.
初期設定ファイル CipherInfo.ini に,上記のパラメータを以下のように指定できます.
Provider = SunJCE Algorithm = DES Mode = CBC Padding = PKCS5Padding
CipherInfo.ini が存在する場合,このファイルの指定が優先されます.
ファイルをパスワード暗号を使って暗号化するプログラム(Javaアプリケーション)です.ソースプログラムは,CryptFile.java です.
プログラムは,javaコマンドにより以下のよう起動します.
java Blanclux.tools.CryptFile {enc|dec} password srcFile destFile パラメータ: enc | dec: 暗号化(enc)または復号(dec) password: パスワード srcFile: 入力ファイル名 destFile: 出力ファイル名
入力ファイルを暗号化または復号し,結果を出力ファイルに格納します.このとき,パラメータの password で指定されたパスワードから共通鍵を生成し,暗号化/復号します.
以下のパラメータが使われます.
これらを変更する場合は,ソースの対応する変数の値を変えてください.