Internet Explorer 8 и ранее не поддерживает парсинг XHTML. Даже если Вы используете определение XML и/или XHTML doctype, старый IE все еще анализируют документ как простой HTML. И в простом HTML, не поддерживается закрывающийся автоматически синтаксис. Запаздывающая наклонная черта просто проигнорирована, необходимо использовать явный закрывающий тэг.
Даже браузеры с поддержкой парсинга XHTML, такой как IE 9 и позже , все еще проанализируют документ как HTML, если Вы не вручите документ с типом содержания XML. Но в этом случае старый IE не отобразит документ вообще!
Как упоминалось в других ответах, асимметричное шифрование предназначено только для шифрования данных, размер которых меньше размера его ключа.
Один из вариантов, который я реализовал при необходимости передачи больших объемов зашифрованных данных между двумя системами, - это наличие пары ключей RSA, открытый ключ которой известен как отправителю, так и получателю, а затем, когда данные должны быть отправлены, получатель генерирует новая пара ключей RSA, шифрует открытый ключ этой пары с помощью общего открытого ключа и отправляет зашифрованный открытый ключ отправителю. Отправитель расшифровывает открытый ключ получателя, используя свой закрытый ключ (который получателю не нужно знать, так же как отправителю не нужно знать закрытый ключ, созданный получателем), генерирует симметричный ключ шифрования, шифрует данные симметричным ключом. а затем шифрует симметричный ключ, используя открытый ключ, полученный от получателя.
RSA может шифровать только блоки данных, которые короче длины ключа, поэтому обычно вы делаете
Затем вы публикуете оба выхода из 2 и 3
Расшифровать
Реализации RSA в .NET (и все алгоритмы открытого / закрытого ключа) не поддерживают большие блоки данных - потому что это не цель открытого / закрытого ключа.
Вместо этого вы должны сгенерировать новый симметричный ключ и использовать его для шифрования данных. Затем вы используете открытый / закрытый ключ для шифрования симметричного ключа и безопасного обмена им с другой стороной. Затем они расшифровывают симметричный ключ и используют его для расшифровки ваших данных.
Обычно RSA используется только для передачи симметричного ключа (например, в начале потока), а затем массив данных шифруется этим ключом.
Асимметричное шифрование недостаточно эффективно для передачи большого количества данных.
Для будущих поисков, касающихся исключений неверной длины RSA ...
Вы можете рассчитать максимальное количество байтов, которые могут быть зашифрованы с определенным размером ключа, следующим образом:
((KeySize - 384) / 8) + 37
Однако, если параметр оптимального заполнения асимметричного шифрования (OAEP) истинен, для вычисления максимального количества байтов можно использовать следующее:
((KeySize - 384) / 8) + 7
Законное размеры ключей от 384 до 16384 с размером пропуска 8.