Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Salvataggio chiave cifrata
Forum - Java - Salvataggio chiave cifrata

Avatar
finanza (Normal User)
Rookie


Messaggi: 24
Iscritto: 08/01/2008

Segnala al moderatore
Postato alle 19:05
Sabato, 12/01/2008
Ciao a tutti, questa volta ho un problema sulla memorizzazione in un file di una chiave simmetrica. La cifro con RSA (ho un keypair RSA e quindi è inutile crearne un altro), la salvo su un file, ma quando vado a leggerla supera la lunghezza massima supportata da RSA (256 byte). Ho provato a salvare chiavi DES, 3DES, AES e Blowfish ma il file che si crea è sempre di 283byte. Mi è quindi impossibile recuperare la chiave! Insomma, come è possibile che persino una chiave DES da 64byte cifrata e memorizzata dia luogo ad un file così grande?!

Ultima modifica effettuata da finanza il 12/01/2008 alle 19:08
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 11:04
Domenica, 13/01/2008
qui hai un esempio su come salvare una chiave blowfish cifrata con RSA: http://www.pierotofy.it/pages/sorgenti/browse/14684/593/

con una AES dovrebbe essere lo stesso.

Ad ogni modo c'è un alternativa per salvare chiavi in modo sicuro che è intrinsica nella classe Cipher ma non è implementato in tutti i provider crittografici (di solito lo è cmq).
Mi riferisco ai metodi wrap e unwrap:

cifra una chiave
Codice sorgente - presumibilmente Plain Text

  1. cipher.init(Cipher.WRAP_MODE, passwordKey, paramSpec);
  2. byte[] cifrata = cipher.wrap(secretKey);



decifra:
Codice sorgente - presumibilmente Plain Text

  1. cipher.init(Cipher.UNWRAP_MODE, passwordKey, paramSpec);
  2. Key key = cipher.unwrap(cifrata, "AES", Cipher.SECRET_KEY):



se cerchi nella documentazione hai altre informazioni e altri esempi.

PM Quote
Avatar
finanza (Normal User)
Rookie


Messaggi: 24
Iscritto: 08/01/2008

Segnala al moderatore
Postato alle 17:26
Domenica, 13/01/2008
Grazie, ero già riuscito a risolvere! Semplicemente usavo un ObjectOutputStream. Comunque avevo provato anche con wrap ed unwrap però mi dava errore.

PM Quote