C++ Builder CE で暗号化と復号化

C++ Builder CE

パッケージLockBox3をインストールして使ってみる

まずLockBox3をインストールする。IDEを起動してGetItからインスト-ルするのだが、IDEのトップメニューのツール->GetItパッケージマネージャーから、

あるいは、welcome画面の右上のほうの、

一番右をクリックしてもおけ。いずれの場合も、検索窓に“lockbox3”等と入れ、下図となる。

上の方を選択してインストール。ツールパレットの一番下の方に、

“LockBox Vcl”が現れれば、準備おけ。

まずフォームを作ります。上記パレットからTCodecTCryptographicLibraryをフォームにドロップ。他に、LabeledEditx4とButtonx2をドロップ。LabeledEditのLabelは、“平文”,”鍵“、”暗号文”、”復号文”などとして、ボタンのNameは、“Encrypt”“Decrypt”等でおけ。ここまでで、

インスタンスのCodec1は、

このようにしてみてくださいね。Encryptボタンをダブルクリックして、

void __fastcall TForm1::EncryptClick(TObject *Sender)
{
	UnicodeString results;

	Codec1->Password = LabeledEdit2->Text;
	Codec1->EncryptAnsiString(LabeledEdit1->Text,results);
	LabeledEdit3->Text = results;

}

Decryptボタンをダブルクリックして、

void __fastcall TForm1::DecryptClick(TObject *Sender)
{
   	UnicodeString results;

	Codec1->DecryptAnsiString(results,LabeledEdit3->Text);
	LabeledEdit4->Text = results;

}

F9押して、実行させてみましょうか。平文に適当に日本語文字列を入れます。空白を含んでいても大丈夫。鍵にはキーフレーズを入れて、Encrypt押すと、暗号文が生成されます。この状態でDecrypt押すと、復号された文が出てきます。これはもちろん最初の平文に一致しています。

Encryptの後、暗号文を改変してからDecryptすると、

例外が出ました。ま、そうなりますよね。今回は、暗号化のアルゴリズムとしては“BlowFish”ECB(with block padding)モードで使いました。このあたりは、

が分かりやすいかもしれません。

コメント