public boolean initDecrypt(String password) 
    {
        if (password == null || password.length() < 1) 
        {
            Application.getController().displayError(Application.getResourceBundle().getString("password_not_null_title"),
                    Application.getResourceBundle().getString("password_not_null_message"));
            return false;
        }
        try 
        {
            cipher = Cipher.getInstance(getCipherInitString());
            Key k = new SecretKeySpec(PasswordUtil.getKeyWithRightLength(password, getKeyLength()).getBytes(), algName);
            if (!algName.equalsIgnoreCase("RC4")) {
                IvParameterSpec ivs = new IvParameterSpec(getIV());
                cipher.init(Cipher.DECRYPT_MODE, k, ivs);
            } else {
                cipher.init(Cipher.DECRYPT_MODE, k);
            }
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return false;
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
            return false;
        } catch (InvalidKeyException e) {
            e.printStackTrace();
            return false;
        } catch (InvalidAlgorithmParameterException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }