Openssl " данные больше, чем mod len"

Что означает сообщение об ошибке "данные больше, чем mod len"? Я столкнулся с этим при попытке расшифровать данные с помощью openssl_private_decrypt php. Как решить эту проблему? Часами искал в интернете, но ничего не нашел.

3 ответов


асимметричные ключи RSA могут шифровать / расшифровывать только данные ограниченной длины, т. е. схему шифрования RSAES-PKCS1-v1_5, определенную в RFC3447 может работать с сообщениями длиной до K-11 октетов (k-длина октета модуля RSA), поэтому, если вы используете 2048-битный ключ RSA, максимальная длина простых данных для шифрования составляет 245 байт.


Если у вас есть эта ошибка расшифровки:RSA_EAY_PRIVATE_DECRYPT:data greater than mod len попробуйте эту команду перед расшифровкой файла:

cat yourEncryptedFile| base64 -D > yourEncryptedRawFile

вы также можете попробовать openssl enc -in ciphertext -out binarytext -d -a. Это было то, что работал для меня, когда я получил эту ошибку при попытке расшифровать. Затем я смог расшифровать с помощью openssl rsautl -decrypt -in binarytext -out plaintext -inkey my-private-key.pem без сбоев.