@ShellMethod(key = "decrypt-value", value = "Decrypt a CAS property value/setting via Jasypt")
    public void decryptValue(
        @ShellOption(value = {"value", "--value"},
            help = "Value to decrypt")
        final String value,
        @ShellOption(defaultValue = ShellOption.NULL,
            value = {"alg", "--alg"},
            help = "Algorithm to use to decrypt")
        final String alg,
        @ShellOption(defaultValue = ShellOption.NULL,
            value = {"provider", "--provider"},
            help = "Security provider to use to decrypt")
        final String provider,
        @ShellOption(value = {"password", "--password"},
            help = "Password (encryption key) to decrypt")
        final String password,
        @ShellOption(value = {"initvector", "--initvector", "iv", "--iv"},
            help = "Use initialization vector to encrypt", defaultValue = "false")
        final Boolean initVector,
        @ShellOption(value = {"iterations", "--iterations"},
            defaultValue = ShellOption.NULL,
            help = "Key obtention iterations to decrypt, default 1000")
        final String iterations) {

        val cipher = new CasConfigurationJasyptCipherExecutor(this.environment);
        cipher.setAlgorithm(alg);
        cipher.setPassword(password);
        cipher.setProviderName(provider);
        cipher.setKeyObtentionIterations(iterations);
        cipher.setIvGenerator(initVector ? new RandomIvGenerator() : new NoIvGenerator());
        val decrypted = cipher.decryptValue(value);
        LOGGER.info("==== Decrypted Value ====\n[{}]", decrypted);

    }
Decrypt a value using Jasypt.

@param value      the value
@param alg        the alg
@param provider   the provider
@param password   the password
@param initVector the init vector
@param iterations the iterations- defaults to {@value StandardPBEByteEncryptor#DEFAULT_KEY_OBTENTION_ITERATIONS}
support/cas-server-support-shell-core/src/main/java/org/apereo/cas/shell/commands/jasypt/JasyptDecryptPropertyCommand.java