Это идентично "RSA/ECB/PKCS1Padding"
где ЕЦБ немного некорректным, так как он не реализует режим блочного шифра работы (он не обрабатывает открытого текста больше, чем «размер блока»). "RSA/None/PKCS1Padding"
было бы лучшим именем или "RSA/None/RSASSA-PKCS1-v1_5"
, так как ваше предположение о механизме заполнения является правильным.
Это означает, что он использует более старый способ шифрования; OAEP более устойчив к атакам и содержит доказательство безопасности. К сожалению, OAEP, конечно же, не может быть новым по умолчанию, потому что весь существующий шифрованный текст больше не расшифровывается. Это одна из причин, по которой использование дефолтов является, в первую очередь, глупо.
PKCS # 1 v1.5 padding также означает, что вход ограничивается максимальным размером ключа минус 11 байтов. Обратите внимание, что размер полученного зашифрованного текста всегда совпадает с размером ключа в PKCS # 1; даже если результирующее целое число меньше, оно будет оставаться заполненным нулевыми байтами. Я предполагаю, что размер ключа кратен 8.
Вы не должны полагаться на значения по умолчанию для спецификации алгоритма. Это усложняет понимание кода, и по умолчанию разработчики могут действительно различаться (хотя большинство из них попытается следовать примеру Oracle, чтобы избежать несовместимости). Поэтому используйте это только для того, чтобы понять, какой алгоритм сконфигурирован в существующем коде. Единственное место, где значение по умолчанию для платформы имеет смысл, - это, на мой взгляд, SecureRandom
.