botanライブラリを使ってAES 128を暗号化します.

2077 ワード

botan暗号化コンピューティングライブラリは、MD 5、SHA−1、SHA−256のようなハッシュ類(hash)の一般的な暗号化およびハッシュアルゴリズムを統合しています.対称暗号化アルゴリズムは、DES、AESのようなもので、RSAのような非対称暗号化アルゴリズムはすべてサポートされています.
botanソフトウェアホームページ:http://botan.randombit.net/
単刀直入にしましょう.
インストール:uuntuの下でbotanライブラリをインストールするのは簡単です.ソフトウェアセンターでlibbootanを検索して、libbootanともう一つのlibbootanxx-devなどのライブラリをインストールすればいいです.他のシステムはソフトウェアドキュメントを参照してください.
使用:botanライブラリを使用する前に、Library Initializerオブジェクトが必要です.これはあなたのmain関数の先頭に書き込むことができます.
botanのサードパーティライブラリを使うと、方法は簡単です.
ヽoo.ツ................................................................
botanライブラリ内のすべてのクラス、インターフェースは、Botanという名前の空間で宣言されています.普通の引用方法で、怠け者の場合は直接的にusing namespace Botanができます.
次のコードは、Botanライブラリのアルゴリズムを使ってAES 128/CBC対称暗号化を行う方法を示しています.AES 128に必要な128ビットの鍵はMD 5で取得されます.
説明:
入力は順番に明文(または暗号文)、パスワード、操作(ENCRYPTIONとDECRYPTIONの2種類があります.)
出力:明文(または暗号文)は、復号操作に対して、復号に成功した時には明文に戻り、復号に失敗しました.Errタイプの異常
string cryptoAES(string input,string passphrase,Cipher_Dir opt) {
HashFunction* hash = get_hash("MD5");
SymmetricKey key = hash->process(passphrase);
SecureVector<byte> raw_iv = hash->process('0'+ passphrase);
InitializationVector iv(raw_iv, 16);
Pipe pipe(get_cipher("AES-128/CBC", key, iv, opt));
pipe.process_msg(input);
string output=pipe.read_all_as_string();
return output;
}