Мне нужно использовать некоторый механизм шифрования в одном из проектов, над которыми я работаю. Я изучал RSA-шифрование и написал несколько примеров программ для изучения.Шифрованный размер данных с использованием RSA-шифрования (RSACryptoServiceProvider)
Я понимаю, что размер блока RSA-шифрования составляет 16 байт. Поэтому я дал строку «12345678» в качестве входных данных для функции ниже:
public static string Encrypt (string input) { var byteConverter = new UnicodeEncoding(); RSACryptoServiceProvider cruptoEngine = new RSACryptoServiceProvider(); byte[] output = cruptoEngine.Encrypt (byteConverter.GetBytes (input), false); return BytesToString (output); //BytesToString() converts the bytes to hex string }
Теперь зашифрованную строку, что я получаю 128 байт (256 шестигранные символов). Эта строка слишком большая для меня. Я как бы надеялся, что я получу 16 байтов зашифрованных данных, если я дам 16 байтов простых данных. Я делаю что-то неправильно? Это то, что должно произойти? Могу ли я как-то сократить зашифрованные данные?