Oppure

Loading
12/03/07 22:55
Michela
Per favore aiutatemi ho un piccolo problemino..
Bene, effettuo la cifratura tramite :

RSACipher.init(Cipher.ENCRYPT_MODE,publicKey);

di una stringa, e fino a qua tutto bene; poi salvo il risultato CIFRATO in una nuova stringa che invio tramite TCP, a questo punto il ricevente con la sua chiave Privata potrà decifrare il msg,
ma ho questo errore:

javax.crypto.IllegalBlockSizeException: Data must not be longer than 128 bytes

Allora mi sono chiesta ma è possile passare da byte-> Stringhe e viceversa.. potete aiutarmi.
Grazie

aaa
13/03/07 21:48
netarrow
l'errore molto probabilmente è causa da un limite che ha RSA: non può crittografare testi più grandi di 128 bytes.
La dimensione se non erroro varia dalla dimensione della chiave, quel limite riguarda chiavi a 1024 bit.

Per queste cose dovresti usare una chiave di sessione quindi usare cirfatura simmetrica per cifrare il testo e la chiave usata codificarla in RSA, a questo punto lo scambio della chiave lo effettui col metodo della chiave pubblica privata.

In alternativa usi SSL che in Java è già implementato nella libreria JSSE: Java Secure Socket Extension

Praticamente un'estensione delle classiche Socket per fare in modo che dopo un'inizializzazione un pò diversa(per passare i vari parametri aggiuntivi riguardo la sicurezza) tu possa gestire connessioni crittografate in modo trasparente
;) (cioè, tu inizializzi una SSLSocket a dovere, ma poi nel gestirla e come usare una socket normale, e senza renders conto è tutto "sotto scorta";)
aaa
17/03/07 13:41
lorelapo
Allora mi sono chiesta ma è possile passare da byte-> Stringhe e viceversa.. potete aiutarmi.
Grazie

intendi passare da char[] a String e da String a char[]?
aaa