1

指定されたリンクからasp.netアプリケーションにDES暗号化を実装しようとしています:

DES 暗号化/復号化

指定されたコードに従って正常に動作しますが、バイト変数にもう1文字追加すると、例外がスローされます

static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCool"); //Working fine
static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCoola"); //throwing exception

ここに画像の説明を入力

誰でもこれを解決する方法を知っていますか?

DES 暗号化に 8 文字の制限はありますか?

ありがとう

4

2 に答える 2

2

DES は 56 ビット キーをサポートしているため、別のキーを追加することはできません。実際には 56 ビット = 7 バイト"Zerocool"なので、すべての文字が標準 ASCII であり、それぞれが 7 ビットしかかからないため、機能していると思われます。

そうは言っても…

  1. DES は非常に古い暗号です。56 ビット キーは、最新の家庭用コンピューターで簡単に総当たり攻撃できます。AES など、より大きなキーをサポートする暗号を使用する必要があります。

  2. 記事の最後にこれを読みました:

DES を使用すると、ユーザーのパスワードなどを暗号化または復号化し、必要に応じてアルゴリズムを詳しく調べることができます。

それは私を心配させました。パスワードは決して暗号化しないでください。その声明だけに基づいて、私は記事全体を役に立たないと無視します.

于 2011-09-16T05:21:47.383 に答える
1

この線 :

static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCool");

暗号化しようとしている文字列のバイト配列ではなく、暗号化プロセスのキーです。

これは、暗号化を設定する際に初期化ベクトル (IV) と組み合わせて使用​​されます。

writer.Write(originalString);

暗号化の出力を照会している場合は、ここを確認する必要があります。

于 2011-09-16T05:24:37.150 に答える