bloggers bloggers

Marco Napolitano
Messaggi: 79
Stelle: 0
Data: 17/02/22
Jader Jed Francia
Messaggi: 63
Stelle: 0
Data: 18/02/21
Paolo Gambetti
Messaggi: 2
Stelle: 0
Data: 11/11/19
Katia Pazzi
Messaggi: 1
Stelle: 0
Data: 27/06/19
Ezio Lombardi
Messaggi: 11
Stelle: 0
Data: 10/04/18
Chiara Mambretti
Messaggi: 25
Stelle: 0
Data: 27/02/17
Serena Traversi
Messaggi: 3
Stelle: 0
Data: 21/07/16
Francesco Falanga
Messaggi: 8
Stelle: 0
Data: 14/06/16
Antonio Musarra
Messaggi: 2
Stelle: 0
Data: 18/11/13
Simone Celli Marchi
Messaggi: 6
Stelle: 0
Data: 09/07/13
Indietro

Criptare / decriptare informazioni su Liferay

Ciao a tutti!

Il post di oggi tratta un tema che può essere cruciale per chi, come noi, fa progetti di home banking usando la tecnologia Liferay:criptare / decriptare informazioni all'interno delle nostre portlet! :)

Forse non tutti sanno che in Liferay è già presente tutto quello che occorre per utilizzare le funzionalità di algoritmi come AES, Blowfish, DES o Triple DES, e, per di più, con un livello di sicurezza gestito pensando alla caratteristica multi-tenant del portale!

Con questo intendo ovviamente dire che l'encription dei dati usa chiavi diverse a seconda dell'istanza che utilizzate! ;)

Vediamo quindi un po' di codice, per capire come fare la magia! :)

Intanto parliamo del componente di piattaforma che fa tutto.

La classe di oggi si chiama com.liferay.util.Encryptore fa ovviamente parte del corredo standard del portale.

Come buona parte delle cose comode di Liferay, infatti, è possibile utilizzare questa utility anche all'interno delle nostre portlet custom ma questo,ça va sans dire, ormai vi è noto! ;)

Questo è il codice per criptare dati:

String encryptedPassword = StringPool.BLANK;

try {

encryptedString =

Encryptor.encrypt(company.getKeyObj(), myString);

} catch (EncryptorException e) {

// FIXME:SEMPRE gestire l'eccezione ;)

}

E questo, invece, quello per decriptare dati:

String decryptedString =

Encryptor.decrypt(company.getKeyObj(),encryptedString);

Mooolto bene!

Penso che la cosa vi risulti anche semplice da capire, vero? :)

Ultimi dettagli..

Come sempre, via portal.properties ci sono delle property che riguardano la parte di encription.

Nel dettaglio:

  • company.encryption.algorithm
  • company.encryption.key.size

La property "company.encryption.algorithm", ovviamente, permette di configurare l'algoritmo da utilizzare.

I valori ammessi sono: "AES", "Blowfish", "DES", "DESede".

La property "company.encryption.algorithm", invece, prevede queste possibilità:

"56", "128" (che poi è il default), "168", "256", "384" e "512".

Ovviamente questa funzionalità è utilizzata all'interno del portale, soprattutto per criptare i dati che vengono salvati nei Cookie oltre che, ovviamente, per storare la password sul database! ;)

Adesso mi rimetto a giocare con i documenti di progetto, perché per fare un po' di codice, oramai, posso solo sfruttare gli articoli di blog! ;)

Mi raccomando: criptate a più non posso, perché ora non avete proprio più scuse.. ;)

Precedente
Commenti
Nessun commento. Vuoi essere il primo.