1

ActiveCrypt.Crypt以前の開発者がデータベースに送信する前にユーザーのパスワードを暗号化するために呼び出された ASP オブジェクトを使用しているプロジェクトを継承しました。

この呼び出しはencryptvariant()、モード 7 の関数を使用します。私が見つけた唯一のドキュメントは、暗号化が 3DES であることを示しています (会社は現在消滅しています)。問題は、関数から派生した値が base64 でエンコードされた文字列のように見えることです (末尾のシングルとダブルの "==" は完全に見逃されます)。

「=」または「==」で終わることが多い他のエンコーディングはありますか? この ActiveCrypt オブジェクトに精通している人はいますか? キーを使用してパスワードを 3DES エンコードしてから、base64 に変換しようとしましたが、うまくいきませんでした。また、開発者が引数を交換した場合に備えて、キーとパスワードを逆にしてみました。どんな助けでも大歓迎です。

キー「key」を使用したいくつかの例 (引用符なし)

abcdefg: xiupz3RT148=

123456: iDLXPSPPjd4=

test: AWulSF10FR0=

1234567890: 8I48MAg9YWvE3y52VfMYew==
4

1 に答える 1

0

あなたが示すエンコーディングは、通常の base64 でエンコードされた 8 および 16 バイトのように見えます。Base64 は、4 文字を使用して 3 バイトをエンコードします。DES および 3DES は、8 バイトのブロック サイズで動作します。そのため、base64 テキストのサイズはブロック サイズを反映しているようです。さらに、base 64 デコードの出力は完全にランダムに見えます。

したがって、base64 でデコードすると 8 バイトまたは 16 バイトになり、これを復号化する必要があります。操作のブロックモードとパディングモードと同様に、キーはもちろん私たちにはわかりません。したがって、それらを自分で見つける必要があります。キーが指定されていない場合、アプリケーション内でハードコードされている可能性があります。

楽しい狩り。

于 2013-10-30T19:33:27.523 に答える