|
■No33523 (太郎冠者 さん) に返信 > ■No33516 (べん吉 さん) に返信 >>宜しくお願いします。 > > 何を?? > エラーが出たなら詳細も載せてくださいな
ありがとうございます。
ソースを、下記のとおり変更する事でエラーが無くなり、 暗号化→複合ができるようになりました。
// static public long m_nBoxLen = 255; static public long m_nBoxLen = 128;
ただ、こちらで期待している値と違う結果が返されます。 元のプログラムから、RC4暗号化と思っておりましたが、 間違っているのか調べています。
元ソース(C++2003)では下記の手順で処理しています。 ------------------------------------------------------------------ #define PASSWORD "1234567890abcdef" #define KEYLENGTH_128 0x0080 * 0x10000 // 128-bit #define BYTELENGTH 128
// キーコンテナーの取得 CryptAcquireContext(&hProv,NULL,MS_ENHANCED_PROV,PROV_RSA_FULL,0); // ハッシュ計算のインスタンス生成 CryptCreateHash(hProv,CALG_SHA,0,0,&hHash); // ハッシュデータ生成 CryptHashData(hHash,(BYTE*)PASSWORD,(DWORD)strlen(PASSWORD),0); // 鍵の生成 CryptDeriveKey(hProv,CALG_RC4,hHash,KEYLENGTH_128,&hKey);
// 暗号化 CryptEncrypt(hKey,0,TRUE,0,pbData,&dwDataLen,BYTELENGTH);
// 複合 CryptDecrypt(hKey,0,TRUE,0,pbData,&dwDataLen); ------------------------------------------------------------------
根本的にRC4でないなど、そのような問題でしょうか?
申し訳ありませんが、宜しくお願いします。
|