-2

そのため、与えられた入力をエンコードする必要があります。ユーザーが入力するように、「ABC」は「JKL」にシフトする必要があります。各単語に文字を定義することでこれを行うことができます。A = J 、 B = K と同様ですが、問題は毎回同じエンコーディングになることです。文字をランダムに転送する方法はありますか?そして、文字列をデコードできるように乱数を記録できる場合、方法を知っている人はいますか? 本当に感謝します。

編集1:基本的に私のプロジェクトで、ビットシフトを使用して特定のファイルを暗号化し、ダミーデータを追加してから、ベクトル量子化によって圧縮します。

したがって、私の最初のステップは、完了したファイルを読み書きすることでした。文字を前方にシフトしたいのですが、バイナリに変換してからビットシフトを使用するか、文字を前方にシフトすることができます。しかし、その乱数をキャッチできる方法があるかどうか知りたかったので、デコード時にその番号を使用して文字を正しく復号化できます。

そして、ざっくりとコードを作ってみました..近々更新します。フィードバックをお寄せいただきありがとうございます

4

1 に答える 1

1

毎回同じ乱数列を返す乱数発生器をシードすることができます。そうすれば、暗号化にキーを使用できます。

int key = 42;
Random rnd = new Random(key);

これで、乱数を使用して各文字を変換できます。たとえば、文字範囲 AZ の場合:

char c = 'X';

int code = c - 'A'; // Bring the character code into the range 0-25
code = code + rnd.Next(26); // encrypt
code = code % 26; // roll over for codes > 25
c = (char)('A' + code); // convert code to character

復号化は、乱数を減算することを除いて同じです。

于 2013-04-03T15:27:31.523 に答える