2014-04-21 13 views
6

Was bedeutet die "Daten sind größer als Mod len" Fehlermeldung? Ich habe dies beim Entschlüsseln von Daten mit openssl_private_decrypt von PHP festgestellt. Wie geht man dieses Problem zu lösen? Stundenlang online gesucht, nirgendwo hingekommen.Openssl "Daten größer als mod len"

Antwort

10

Asymmetric RSA-Schlüssel können Daten nur von begrenzten Länge dh RSAES-PKCS1-v1_5 Verschlüsselungsschema verschlüsseln/entschlüsseln in RFC3447 definierte auf Nachrichten der Länge arbeiten können bis zu k - 11 Oktetts (k ist die Oktettlänge der RSA-Modul) Wenn Sie also einen 2048-Bit-RSA-Schlüssel verwenden, beträgt die maximale Länge der zu verschlüsselnden einfachen Daten 245 Byte.

+0

Gibt es eine Funktion, um das maximale Urbild und Bildgrößen zu bestimmen? Ich weiß, dass andere Bibliotheken ähnlich sind (wie Crypto ++), aber in OpenSSL nicht darauf gestoßen sind. – jww

+0

@jww für RSA gibt es [RSA_size()] (https://www.openssl.org/docs/crypto/RSA_size.html), die RSA-Modul-Größe zurückgibt, und es gibt eine [dokumentierte Beziehung zwischen Modul-Größe, maximale Länge von Klartext und verschiedene Paddings] (https://www.openssl.org/docs/crypto/RSA_public_encrypt.html). Ich habe in OpenSSL-API nichts generischeres für asymmetrische Algorithmen gesehen (was natürlich nicht bedeutet, dass so etwas nicht existiert). – jariq

+0

Danke. 'RSA_size' ist nicht wirklich nützlich. Ich fragte nach der OpenSSL-Benutzerliste: [RSA und maximale Größe des Vorimages?] (Https://groups.google.com/forum/#!topic/mailing.openssl.users/ruoFBjX-s7w). – jww