Oppure

Loading
06/02/11 10:40
kegita
Ciao a tutti....

Sto impazzendo da 3 giorni per un problema che non riesco a risolvere.

In pratica devo criptare con una chiave privata una stringa di testo,salvarla in un DB e poi recuperarla e decriptarla con la chiave pubblica.

L'utente A cripta la stringa
Il server inserisce la stringa nel DB
L'utente B decripta la stringa con la chiave pubblica di A

questo è il codice per criptare

Cipher c1;
c1 = Cipher.getInstance("RSA","BC");
c1.init(Cipher.ENCRYPT_MODE, privata);
byte[] byteDaCodificare = messaggio.getBytes("UTF8");//
byte[] codificati = c1.update(byteDaCodificare);
codificati = c1.doFinal();

String dec = new String(codificati,"UTF8");
return dec;



codice per decriptare
Cipher c1;
c1 = Cipher.getInstance("RSA","BC");
c1.init(Cipher.DECRYPT_MODE, pubblica);
byte[] byteDaDeodificare = _messaggio.getBytes("UTF8");
byte[] decodificati = c1.doFinal(byteDaDeodificare);

String dec = new String(decodificati,"UTF8");

return dec;



Il problema è che quando il server va a scrivere la stringa sul DB,mi da questo errore

" Errore di sintassi nella stringa nell'espressione della query"

E da quanto ho capito,lo fa perchè ho una stringa di valori esadecimali.


Come posso rivolvere allora il tutto???

aaa
07/02/11 13:14
Bonny
Secondo me c'è tipo qualche apice di troppo e cose del genere .. il discorso dell'esadecimale secondo me non è un prob perchè tu salvi un valore di tipo String ..
aaa