Я пытаюсь зашифровать что-то простое, например 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 байтов) и получить результат такого же размера. Какой самый простой способ сделать это в C #, при этом используя некоторые клавиши (со встроенными библиотеками), а не некоторые операции мода и сдвига