Il printStackTrace() mi stampa la seguente eccezione:

codice:
javax.crypto.BadPaddingException: Given final block not properly padded
        at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
        at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
        at com.sun.crypto.provider.SunJCE_af.b(DashoA12275)
        at com.sun.crypto.provider.PBEWithMD5AndDESCipher.engineDoFinal(DashoA12275)
        at javax.crypto.Cipher.doFinal(DashoA12275)
Cosa significa?

Anche se so che non è il metodo più sicuro, è possibile definire una chiave, quindi un'oggetto Key o KeyGenerator come una costante?

Sulla documentazione ho trovato questo metodo che serve ad inizializzare l'oggetto in questione:

codice:
init

public final void init(SecureRandom random)

    Initializes this key generator.

    Parameters:
        random - the source of randomness for this generator
Ma nn riesco a capire bene come scrivere il codice, perchè così nn va bene:

codice:
private static final KeyGenerator KEY = KeyGenerator.init(new SecureRandom().getInstance("SHA1PRNG"));
Avete qualche idea?