chat
Class Crittografia

java.lang.Object
  |
  +--chat.Crittografia

public class Crittografia
extends java.lang.Object

Classe di utilità che semplifica l'uso della crittografia all'interno dei programmi Java.

E' sufficiente creare un'istanza di questa classe specificando l'algoritmo crittografico desiderato, dopodiché cifra(...) e decifra(...) possono essere invocati in qualsiasi successione ed un qualunque numero di volte per applicare l'operazione crittografica voluta ai dati specificati di volta in volta.

Questa classe è idonea anche agli ambiti multi-threading.

Version:
1.0
Author:
Marco Cimatti

Field Summary
private  java.lang.String algoritmo
          L'algoritmo da usare nelle operazioni di cifratura e decifratura.
 
Constructor Summary
Crittografia(java.lang.String algoritmo)
          Unico costruttore della classe.
 
Method Summary
 byte[] cifra(byte[] dati, int offset, int lun, java.security.Key chiave)
          Operazione di cifratura.
 byte[] cifra(byte[] dati, java.security.Key chiave)
          Produce la versione cifrata del testo dati.
 byte[] decifra(byte[] dati, int offset, int lun, java.security.Key chiave)
          Operazione di decifratura.
 byte[] decifra(byte[] dati, java.security.Key chiave)
          Produce la versione decifrata del testo dati.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

algoritmo

private java.lang.String algoritmo
L'algoritmo da usare nelle operazioni di cifratura e decifratura.
Constructor Detail

Crittografia

public Crittografia(java.lang.String algoritmo)
             throws java.security.NoSuchAlgorithmException
Unico costruttore della classe.
Parameters:
algoritmo - la stringa che identifica il tipo di Cipher da adottare. Si possono specificare anche la modalità di lavoro a blocchi (ECB, CBC, CFB, OFB...) ed il tipo di padding (PKCS#5, PKCS#7...), impiegando il carattere '/' per separare i vari campi entro la stringa.
Throws:
java.security.NoSuchAlgorithmException - se l'algoritmo specificato non è supportato.
See Also:
algoritmo
Method Detail

cifra

public byte[] cifra(byte[] dati,
                    java.security.Key chiave)
             throws java.security.KeyException
Produce la versione cifrata del testo dati. Semplice wrapper che equivale a:

cifra(dati, 0, dati.length, chiave);

Parameters:
dati - il plaintext da cifrare.
chiave - la chiave di cifratura da impiegare.
Returns:
il ciphertext ottenuto da dati.
Throws:
java.security.KeyException - se generata dal Cipher interno.
See Also:
cifra(byte[], int, int, java.security.Key)

cifra

public byte[] cifra(byte[] dati,
                    int offset,
                    int lun,
                    java.security.Key chiave)
             throws java.security.KeyException
Operazione di cifratura. Si può usare decifra(...) come azione complementare per risalire al messaggio in chiaro.
Parameters:
dati - il plaintext da cifrare.
offset - l'offset del primo byte utile nel vettore dati.
lun - la lunghezza del testo da cifrare, considerato da dati[offset] (compreso) in poi.
chiave - la chiave di cifratura da impiegare.
Returns:
il ciphertext ottenuto da dati.
Throws:
java.security.KeyException - se generata dal Cipher interno.
java.lang.RuntimeException - se internamente viene generata una NoSuchAlgorithmException.
See Also:
decifra(byte[], java.security.Key), decifra(byte[], int, int, java.security.Key)

decifra

public byte[] decifra(byte[] dati,
                      java.security.Key chiave)
               throws java.security.KeyException
Produce la versione decifrata del testo dati. Semplice wrapper che equivale a:

decifra(dati, 0, dati.length, chiave);

Parameters:
dati - il ciphertext da decifrare.
chiave - la chiave di decifratura da impiegare.
Returns:
il plaintext ottenuto da dati.
Throws:
java.security.KeyException - se generata dal Cipher interno.
See Also:
decifra(byte[], int, int, java.security.Key)

decifra

public byte[] decifra(byte[] dati,
                      int offset,
                      int lun,
                      java.security.Key chiave)
               throws java.security.KeyException
Operazione di decifratura. Si può usare cifra(...) come azione eseguita in precedenza per creare il messaggio cifrato.
Parameters:
dati - il ciphertext da decifrare.
offset - l'offset del primo byte utile nel vettore dati.
lun - la lunghezza del testo da decifrare, considerato da dati[offset] (compreso) in poi.
chiave - la chiave di decifratura da impiegare.
Returns:
il plaintext ottenuto da dati.
Throws:
java.security.KeyException - se generata dal Cipher interno.
java.lang.RuntimeException - se internamente viene generata una NoSuchAlgorithmException.
See Also:
cifra(byte[], java.security.Key), cifra(byte[], int, int, java.security.Key)