public String crypt(int mode, String encryption_subject) throws CryptException { final PBEParameterSpec ps = new javax.crypto.spec.PBEParameterSpec(SALT, 20); final SecretKeyFactory kf = getSecretKeyFactory(); final SecretKey k = getSecretKey(kf); final Cipher crypter = getCipherInstance(); String result; switch(mode){ case Cipher.DECRYPT_MODE: initialise(ps, k, crypter, Cipher.DECRYPT_MODE); result = getString(encryption_subject, crypter); break; case Cipher.ENCRYPT_MODE: default: initialise(ps, k, crypter, Cipher.ENCRYPT_MODE); result = encode(encryption_subject, crypter); } return result; }