int や long などの単純なものを暗号化しようとしています。私が見つけた最も簡単な方法は次のようになります。
int num = 2;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] numBytes = BitConverter.GetBytes(num);
byte[] encryptedBytes = rsa.Encrypt(numBytes, true);
問題は、encryptedBytes の長さが 128 バイトであることです。暗号化された結果が入力と同じバイト長であるデータを暗号化するにはどうすればよいですか (後で復号化できます)。
RSACryptoServiceProvider(512) または RSACryptoServiceProvider(384) を定義すると、結果を短縮できることはわかっていますが、それは最低です。
入力する 4 または 8 バイトと出力する 4 または 8 バイトが必要です (それぞれ)。
ありがとう!
*** 明確化:
小さなもの (つまり 4 または 8 バイト) を暗号化し、同様のサイズの結果を取得したいと考えています。一部のmodおよびshift操作ではなく、いくつかのキー(組み込みライブラリを使用)を使用しながら、C#でそれを行う最も簡単な方法は何ですか?