2

サーバー上のクライアントに送信するものを暗号化したい (Wireshark などで誰かがデータを簡単に見られないようにするためだけに、必ずしも安全を確保する必要はありません)。

結果はまだ NULL で終了する文字列ですが、非常に迅速かつ簡単に復号化して utf-8 文字列に戻すことができるアルゴリズムを探しています。私が使用しているネットワーク ライブラリでは、クライアントに NULL で終了する文字列しか送信できません。これが理由です。信頼できるパケットで UDP ライブラリを使用しています。

この種のことを行うことができるいくつかのアルゴリズムは何ですか?

ありがとう

4

3 に答える 3

4

Xまたは何らかの値(または別の文字列)を持つすべてのバイト。

データを送信する前に、すべての「\0」文字を0xff0xfeに置き換え、すべての0xffを0xff0xffに置き換えます。(もちろん、他の値を使用することもできます)

データを受信したら、プロセスを逆にします。0xff0xffを0xffに、oxff 0xfeを0に置き換えます。次に、xorをキーに置き換えます。

または、暗号化されたデータをbase64エンコードして\0文字を処理することもできます。

于 2012-05-09T13:53:53.473 に答える
0

データをスクランブルする場合は、 Base64エンコーディング、ROT13、またはHEXエンコーディングを実行する関数を探すことができます。

于 2012-05-09T13:42:48.790 に答える
0

暗号文を平文と同じサイズにする必要がある場合は、[1..255]から[1.255]への文字マッピングが必要なので、次のようなことができます。

cipherbyte = ((clearbyte + keystreambyte) mod 255)+1

[1..255]のすべての文字に明確なパスがありますか?

クリアテキストよりも大きい暗号文を気にしない場合は、XOR(mod 256)を実行して、SigTermが提案したようなエスケープメカニズムを採用できます。

いずれの場合も、いくつかのキーストリーム資料が必要であり、いくつかのキー管理戦略を決定する必要があることに注意してください。ストリーム暗号を読むことは良いスタートを切るかもしれません。同じキーを2回使用することは、同じエンコーディングを何度も使用することと同じであることに注意してください(それほど強力ではありません)。

于 2012-05-09T14:27:43.597 に答える