Если вы укажете NoPadding
, вы получите модульное возведение в степень. Конечно, перед этим есть шаг для преобразования двоичного ввода в число, а затем снова кодирование из числа в двоичное. Достаточно забавно, что это верно как для шифрования, так и для дешифрования, поскольку эти операции довольно симметричны для RSA.
Единственное отличие состоит в том, что вы сначала используете открытый ключ для шифрования и закрытый ключ для расшифровки. Однако иногда вам приходится создавать собственную схему проверки . В этом случае необработанное модульное возведение в степень с открытым ключом приятно даст вам (обычно дополненный) результат. Итак, расшифровка с открытым ключом имеет некоторый смысл, даже если технически это не следует называть расшифровкой.
В целом, если ваш ввод имеет правильный размер, чем просто декодированиеввод числа, модульное шифрование (или дешифрование) и, наконец, кодирование результата, никогда не удастся. Таким образом, вы просто получаете вывод с тем же размером, что и модуль, то есть размер ключа в байтах. Это unpadding для RSA, который может потерпеть неудачу. Но ваш код будет работать только потому, что вы не выполняете никаких операций заполнения.
Конечно, если вы используете неправильный модуль и показатель степени, результат расшифровки не будет иметь никакого смысла;оно будет выглядеть как случайное число между 0 и модулем, использованным для последней операции.