さて、私は独自のバイナリ形式をパックしました。これは基本的に、いくつかの異なるラスター データセットの緩やかなパッキングです。とにかく、これを読んで開梱するだけの簡単な作業でした。しかし、次のバージョンでは、ラスター xml データは AES-256 を使用して暗号化されるようになりました (私の選択ではなく、選択の余地もありません)。
これで基本的に、アンパッケージャーを変更できるように、彼らが使用している SALT とともに AES キーが送信されました。
これらはキーではなく、単なる例であることに注意してください。
それぞれ 63 バイト長の ASCII 文字です。
Key: "QS;x||COdn'YQ@vs-`X\/xf}6T7Fe)[qnr^U*HkLv(yF~n~E23DwA5^#-YK|]v."
Salt: "|$-3C]IWo%g6,!K~FvL0Fy`1s&N<|1fg24Eg#{)lO=o;xXY6o%ux42AvB][j#/&"
基本的には、C++ CryptoAPI を使用してこれを解読したいと考えています (今週ここにいる唯一のプログラマーでもあります。これは明日ライブになります。私たちのせいではありません)。これを実装するための簡単なチュートリアルを探しました。残念ながら、ソルトとキーの両方を別々に持っているチュートリアルさえ見つけることができません。基本的に、私が今持っているのは、BYTEの配列を受け取る小さな関数だけです。その長さとともに。これどうやってするの?
私は午前中のほとんどを、cryptoAPI の表と裏を作成することに費やしました。しかし、うまくいかない期間:(
編集
だから私は彼らがそれを暗号化する方法を尋ねました。彼らは C# を使用し、RijndaelManaged を使用していますが、これは私の知る限り AES と同等ではありません。
EDIT2
ようやく何が起こっているのか正確にわかり、間違ったキーが送られてきました。
彼らは次のことを行っています。
パディング = PKCS7 CipherMode = CBC キーは、16 進数で 32 バイトのセットとして定義されます。IV も 16 進数で 32 バイトのセットとして定義されます。
私が彼らに尋ねると、彼らは塩を取り除いた。
wincrypt.h ヘッダー ファイルを使用して、CryptoAPI でこれらを設定するのはどれくらい難しいですか?