1

したがって、2台の異なるコンピューター間でXOR暗号化を送信していますが、ASCIIが30未満の文字を送信すると、以下の文字がフロー制御を混乱させるため、送信に失敗するという大きな問題が発生しています。これを回避するために、文字を30ずつ追加しようとしましたが、それでも失敗します。

基本的に、ASCII 30未満の文字が送信されると、送信は完全に停止します。

コードは非常に単純で、次のとおりです-

    mov al, character
    xor al, password
    mov character, al

基本的に、変数の文字とパスワードの特定の組み合わせにより、この問題が発生します。

4

1 に答える 1

0

32 未満の文字は制御コードとして使用されることが多く、透過的に転送されません。8ビットの透過チャネルを使用していないと思います。

TCP のような 8 ビットの透過チャネルを使用して送信することをお勧めします。タイプするだけではうまくいきません。それができない場合は、base-64 エンコーディングのようなものを使用します。これは、3 バイトを印刷可能で 128 未満の 4 文字にマップします。もちろん、他のエンコーディングでも同様です。

ところで:あなたの「暗号化」は、存在しないという点で非常に弱いです。AES などのよく理解されたアルゴリズムの使用を検討してください。利用可能な優れた高速ライブラリがあります。

于 2012-11-22T21:36:14.640 に答える