2011-09-16 6 views
1

私は与えられたリンクからasp.netアプリケーションでDES暗号化を実装しようとしています:与えられたコードごとなどasp.netでDES暗号化/復号化を実装する際にエラーを解決するにはどうすればよいですか?

DES encrypt/decrypt

その作業罰金が、私はバイト変数の投げる例外でもう1つの文字を追加した場合

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

enter image description here

誰もがどのようにこれを解決するためのアイデアを持っていますか?

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

ありがとう

答えて

2

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

  1. DESは本当に古い暗号であることを

    。現代の家庭用コンピュータでは、56ビットのキーを簡単にブルートフォースできます。あなたは、AESのようなより大きな鍵をサポートする暗号を使うべきです。

  2. は、私は記事の最後にこれを読んで:

DESを使用して、暗号化したり、ユーザーのパスワードや他の何かを解読し、あなたが好きなら、あなたは、アルゴリズムを詳細に調べることができます。

どれが私を懸念していますか。パスワードは決して暗号化されるべきではありません。その声明だけに基づいて、私は記事全体を役に立たないものとして無視するだろう。

+0

トリプルデーについてのあなたの見解は何ですか? – f0x

+0

@ f0x AESほど良くない。 – NullUserException

1

ライン:

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

は、暗号化プロセスのための鍵だ、あなたは暗号化しようとしている文字列のバイト配列ではありません。

これは、暗号化を設定する際に初期化ベクトル(IV)とともに使用されます。

writer.Write(originalString);

あなたが暗号化出力をキシにしている場合、あなたが探しているべき場所です。

+0

つまり、キーの長さは8文字を超えてはいけません。そうですか? – Sukhjeevan

+0

@Sukhi:ほぼ正しい。 DESは、56ビットのキーと8パリティビット(無視されます)を取ります。それは56 + 8 = 64ビット= 8バイトを与える。 DESは古いコードとの互換性のためにDESを使用していない限り、代わりにAESを使います。 – rossum

+0

私はAESが最高のchoice.thanksの男だと思う。あなたの応答には – Sukhjeevan

関連する問題