私のWPFアプリケーション用にC#でRC4アルゴリズムを実装しています。RC4暗号化KSAキーの範囲外
このアルゴリズムには、pdfが続きました。
事は、KSAでは、私たちはすべきことです:j = (j + S[i] + (int)key[i % keyLengthInBits]) % 256;
。
これは、キーが5文字から32文字の長さ(40ビットから256ビット)でなければならないため、これがどのように機能するのか分かりません。
ここでは、5文字のキーを使用して例を示します(私は上記のPDFと同じものを使用します)。pwd12キーの文字をi % 40
の位置にフェッチします(5文字は40ビットです)。 i = 0
からi=4
には、キーの値(pwd12)があるため、最初の5回は問題ありません。ここに問題があります(私がそれを見てから):i=5
にいるとき、私たちは鍵に何も残っていません。したがって、我々はÒutOfBounds Exception
を得るでしょう。
キーに文字がない場合、その文字をフェッチしようとすると、どのように動作するのですか?明らかにアルゴリズムには見当たらないものがあります。なぜなら、そうでなければ動作しないために使用されないからです...
ヒント:剰余演算子( '%が')のために何
同等のCコードのようなものでしょうか? –
除算の残りの部分を返します。したがって、それは鍵長ではなく、鍵長である。私の目を開いてくれてありがとう! – Marks
キーの長さはビットです。この式の目的は、キーの1ビットを選択することです。私の答えを見てください。 –