|
ニュース検索
ピックアップ
今週のIT求人情報
|
2005年11月1日 10:00
Blowfish暗号化データをMSXML2 DOMオブジェクトに直接ロードするはじめに MSXML2ライブラリを使用するときは、通常は、 DecryptFile2Bstrヘルパー関数 説明を続ける前に、1993年にBruce Schneier氏がBlowfish暗号化アルゴリズムを発表して以来、多くの実装が登場していることを述べなければなりません。私は、高速で信頼できるデータ暗号化/復号のための暗号化手段を必要としていたのですが、その目的にはGeorge Anescu氏による実装を使用するのが特に簡単であると思いました。そのため、私の関数は、George Anescu氏による 私が解決策を探しているときに最初に学んだことは、 下記のコードからわかるとおり、 BSTR DecryptFile2Bstr(char* inputFileName, char* password) { try { int requiredFileSize; CBlowFish oBlowFish((unsigned char*)password, sizeof(password)); char *buffer = GetFormattedFileContent( inputFileName, requiredFileSize ); oBlowFish.Decrypt((unsigned char *)buffer, requiredFileSize); return _com_util::ConvertStringToBSTR(buffer); } catch ( char *ex ) { throw ex; } } Blowfishアルゴリズムは8バイトのブロックをベースとするため、 char* GetFormattedFileContent(char *filePath, int &requiredFileSize) { FILE *fp = fopen(filePath, "r+b"); int fileSize = FileSize(fp); int index = fileSize; if ( (fileSize % 8) != 0 ) requiredFileSize = ((fileSize / 8) + 1) * 8; else requiredFileSize = fileSize; char *buffer = new char[requiredFileSize + 1]; fread(buffer, sizeof(char), fileSize, fp); buffer[fileSize] = 0; fclose(fp); while (index < requiredFileSize) buffer[index++] = 0; return buffer; } int FileSize(FILE *fp) { char buffer[1]; int count = 0; fseek(fp, 0, SEEK_SET); while (fread(buffer, sizeof(buffer), 1, fp) != 0) count++; fseek(fp, 0, SEEK_SET); return count; } DecryptFile2Bstr関数の使用 データが #import <msxml4.dll& named_guids using namespace MSXML2; ... ::CoInitialize(NULL); MSXML2::IXMLDOMDocumentPtr plDomDocument; HRESULT hr = plDomDocument.CreateInstance(MSXML2::CLSID_DOMDocument); if (SUCCEEDED(hr)) { // load the file as an XML document BSTR = DecryptFile2Bstr(L"MyFile.xml", DEFS_ENC_PASSWORD); variant_t vResult = plDomDocument->loadXML(xmlfile); ... 今後について MSMXL2 著者紹介Tom Archer(Tom Archer)
.NETプログラマの教育・指導、プロジェクト管理コンサルティングを専門とする研修会社、Archer Consulting Groupを経営。同社がどのように貴社の開発コストを削減させ、ソフトウェアを市場に早く送り出し、製品からの収入を増やすのに役立ってくれるのかを知りたい場合は、同社のWebサイトをお訪ねください。
![]()
新着ニュース・コラム ホワイトペーパー
|
注目のトピックス 話題の記事
企業の約4割がいまでも IE 6 以前のブラウザを利用 ― Web 広告研究会調査
SNS「非モテ+」、バレンタイン関連ワード投稿を禁止に
さぬきうどんの食べ歩きをサポートするスマホアプリ「Udooon!」が公開
Android 版 Chrome ベータ1登場、ただし Android 4.0に限る
Android アプリを美しくみせる UI デザイン10のヒント
⇒一覧を見る
アクセスランキング
最新コラム一覧
|
||||||||||||||||||||||||