0

コンピュータ間で dgram メッセージを送信する作業コードがありますが、それらを Blowfish で暗号化しようとしています。2 台のリトル エンディエン マシン間でメッセージを送信しようとすると問題なく動作しますが、リトル エンディエンをビッグ マシンに送信しようとすると (またはその逆)、正しく復号化されません。

質問 1: sendto() はメッセージを送信する前にネットワーク バイト順に変換しますか?

質問 2: これはメッセージの復号化の問題ですか、それとも別の場所にありますか?

ありがとう

4

2 に答える 2

2
  1. いいえ、そうではありません。

  2. フグのコードがエンディアンを適切に処理していない可能性があります。これは、暗号化、復号化、またはその両方である可能性があります。コードなしでは語れません。

于 2011-02-22T23:46:55.900 に答える
0

ソケットを介して送信されるメッセージで整数データをエンコードしている場合は、これもネットワーク バイト オーダーに変換する必要があります。これを行わないと、他の種類のマシンで実行したり、他の種類のマシンと通信したりするときに、プログラムが失敗する可能性があります。

GNUドキュメントから。http://www.gnu.org/s/libc/manual/html_node/Byte-Order.html

于 2011-02-23T00:28:18.237 に答える