2014-04-21 10 views
6

Che cosa significa il messaggio di errore "dati è maggiore di len"? Ho riscontrato questo durante il tentativo di decifrare i dati usando openssl_private_decrypt di php. Come si fa a risolvere questo problema? Sono andato alla ricerca di ore online, senza arrivare da nessuna parte.Openssl "data maggiore di mod len"

risposta

10

chiavi asimmetriche RSA può cifrare/decifrare solo i dati di lunghezza limitata cioè schema di crittografia RSAES-PKCS1-v1_5 definito RFC3447 può operare sui messaggi di lunghezza fino a k - 11 ottetti (k è la lunghezza ottetto del modulo RSA) quindi, se si utilizza la chiave RSA a 2048 bit, la lunghezza massima dei dati semplici da crittografare è 245 byte.

+0

Esiste una funzione per determinare la massima preimage e le dimensioni dell'immagine? So che altre librerie sono simili (come Crypto ++), ma non le ho mai viste in OpenSSL. – jww

+0

@jww per RSA c'è [RSA_size()] (https://www.openssl.org/docs/crypto/RSA_size.html) che restituisce la dimensione del modulo RSA e c'è una [relazione documentata tra la dimensione del modulo, la lunghezza massima di testo in chiaro e diversi paddings] (https://www.openssl.org/docs/crypto/RSA_public_encrypt.html). Non ho visto nulla di più generico in OpenSSL API per algoritmi asimmetrici (che ovviamente non significa che qualcosa del genere non esiste). – jariq

+0

Grazie. 'RSA_size' non è molto utile. Ho chiesto sulla lista utenti OpenSSL: [RSA e dimensione massima preimage?] (Https://groups.google.com/forum/#!topic/mailing.openssl.users/ruoFBjX-s7w). – jww