3

バイナリ ファイルをクライアントに転送するために使用される C# で記述された TCP/IP ソケット サーバーがあります。例: クリップ、画像。byte[] バッファを送信するために、コールバックを伴う非同期の BeginSend/EndSend が使用されています。

新しい要件は、転送されるデータを暗号化することです。各クライアント接続は、サーバーが使用する暗号化キーを提供します。実際の暗号化アルゴリズムはそれほど重要ではありません。つまり、データが平文で送信されないようにすることが目的です。40 ビット キーを使用する RC2CryptoServiceProvider でも十分です... 128 ビット キーを使用する RijndaelManaged はやり過ぎであり、RC2 と比較してかなり CPU を集中的に使用します。

データ ファイルを転送する前に、暗号化されたバージョンのデータ ファイルを生成することは確かに可能です。ただし、理想的には、データがファイルから読み取られてソケットに送信されるときに、その場でファイルを暗号化する必要があります。データ ファイルのサイズを考慮すると、ファイルの内容全体をメモリに読み取ることは、効率的でもスケーラブルでもありません。

オンザフライでファイルからデータを暗号化してソケット ピアに送信する場合に従うべきいくつかの適切なパターンはありますか?

4

1 に答える 1