2.3. 암호화된 속성 위치 소유자 사용 방법

Karaf 컨테이너를 보호하는 경우 구성 파일에 일반 텍스트 암호를 사용하지 마십시오. 일반 텍스트 암호를 사용하지 않는 한 가지 방법은 가능한 경우 암호화된 속성 자리 표시자를 사용하는 것입니다. 자세한 내용은 다음 항목을 참조하십시오.

2.3.1. 값을 암호화하기 위한 마스터 암호 정보

Jasypt를 사용하여 값을 암호화하려면 마스터 암호가 필요합니다. 마스터 암호를 선택하는 것은 귀하 또는 관리자에게 달려 있습니다. Jasypt는 마스터 암호를 설정하는 몇 가지 방법을 제공합니다.

한 가지 방법은 블루프린트 구성에서 일반 텍스트로 마스터 암호를 지정하는 것입니다. 예를 들면 다음과 같습니다.

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
   	xmlns:enc="http://karaf.apache.org/xmlns/jasypt/v1.0.0">

  <enc:property-placeholder>
    <enc:encryptor class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
      <property name="config">
        <bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
          <property name="algorithm" value="PBEWithMD5AndDES" />
          <property name="password" value="myPassword" />
        </bean>
      </property>
    </enc:encryptor>
  </enc:property-placeholder>

</blueprint>

일반 텍스트로 마스터 암호를 지정하는 대신 다음 중 하나를 수행할 수 있습니다.

  • 환경 변수를 마스터 암호로 설정합니다. 블루프린트 구성 파일에서 이 환경 변수를 passwordEnvName 속성 값으로 지정합니다. 예를 들어 MASTER_PW 환경 변수를 마스터 암호로 설정하면 블루프린트 구성 파일에 이 항목이 있습니다.

    <property name="passwordEnvName" value="MASTER_PW">

  • Karaf 시스템 속성을 마스터 암호로 설정합니다. 블루프린트 구성 파일에서 이 시스템 속성을 passwordSys 속성 값으로 지정합니다. 예를 들어 karaf.password 시스템 속성을 마스터 암호로 설정하면 블루프린트 구성 파일에 이 항목이 있습니다.

    <property name="passwordSys" value="karaf.password">

2.3.2. 암호화된 속성 자리 표시자 사용

Karaf 컨테이너를 보호할 때 블루프린트 구성 파일에서 암호화된 속성 자리 표시자를 사용합니다.

사전 요구 사항

  • 값을 암호화하기 위한 마스터 암호를 알고 있습니다.

절차

  1. 기본 암호화 알고리즘인 PBEWithMD5AndDES 를 사용하거나 다음과 같이 사용할 암호화 알고리즘을 선택합니다.

    1. jasypt:list-algorithms 명령을 실행하여 현재 Java 환경에서 지원되는 알고리즘을 확인합니다.

      karaf@root()> jasypt:list-algorithms

      인수 또는 옵션이 없습니다. 출력은 지원되는 다이제스트 및 PBE(암호 기반 암호화) 알고리즘에 대한 식별자 목록입니다. 목록에는 Bouncy Castle 라이브러리에서 제공하는 알고리즘이 포함되어 있으며 Fuse 7.8의 일부입니다. 이 목록은 길 수 있습니다. 이 중 일부는 다음과 같습니다.

      karaf@root()> jasypt:list-algorithms
      DIGEST ALGORITHMS:
       - 1.0.10118.3.0.55
       - 1.2.804.2.1.1.1.1.2.2.1
          ...
       - 2.16.840.1.101.3.4.2.9
       - BLAKE2B-160
       - BLAKE2B-256
         ...
       - MD4
       - MD5
       - OID.1.0.10118.3.0.55
         ...
       - SHA3-512
       - SKEIN-1024-1024
       - SKEIN-1024-384
         ...
       - TIGER
       - WHIRLPOOL
      
      PBE ALGORITHMS:
       - PBEWITHHMACSHA1ANDAES_128
       - PBEWITHHMACSHA1ANDAES_256
          ...
       - PBEWITHSHA1ANDRC2_128
       - PBEWITHSHA1ANDRC2_40
          ...
       - PBEWITHSHAANDIDEA-CBC
       - PBEWITHSHAANDTWOFISH-CBC
    2. 목록을 검사하고 사용하려는 암호화 알고리즘의 식별자를 찾습니다. 알고리즘을 선택하는 데 도움이 되도록 사이트의 보안 전문가와 상의할 수 있습니다.
  2. 구성 파일에서 사용할 암호와 같은 중요한 구성 값을 암호화하려면 jasypt:encrypt 명령을 실행합니다. 명령의 형식은 다음과 같습니다.

    jasypt:encrypt [options] [input]

    옵션을 지정하지 않고 이 명령을 호출하고 암호화할 값을 지정하지 않으면 명령에서 마스터 암호를 입력하라는 메시지를 표시하고 값을 암호화하고 다른 옵션에 기본값을 적용합니다. 예를 들면 다음과 같습니다.

    karaf@root()> jasypt:encrypt
    Master password: ********
    Master password (repeat): ********
    Data to encrypt: *****
    Data to encrypt (repeat): *****
    Algorithm used: PBEWithMD5AndDES
    Encrypted data: oT8/LImAFQmOfXxuFGRDTAjD1l1+GxKL+TnHxFNwX4A=

    암호화하려는 각 값에 대해 jasypt:encrypt 명령을 호출합니다.

    기본 동작을 변경하려면 다음 옵션 중 하나 이상을 지정합니다.

    옵션설명예제

    -w 또는 --password-property

    환경 변수 또는 마스터 암호 값으로 설정된 시스템 속성을 사용하여 이 옵션을 따릅니다. Jasypt는 암호화 알고리즘과 함께 이 값을 사용하여 암호화 키를 파생합니다.

    명령을 호출한 후 -w 또는 -W 옵션을 지정하지 않으면 마스터 암호를 입력하고 확인하라는 메시지를 표시합니다.

    -W MASTER_PW

    - w 또는 --password

    선택한 마스터 암호의 일반 텍스트 값을 사용하여 이 옵션을 따르십시오. 마스터 암호의 일반 텍스트 값이 기록에 표시됩니다.

    Jasypt는 암호화 알고리즘과 함께 이 값을 사용하여 암호화 키를 파생합니다.

    명령을 호출한 후 -w 또는 -W 옵션을 지정하지 않으면 마스터 암호를 입력하고 확인하라는 메시지를 표시합니다.

    -W "M@s!erP#"

    -a 또는 --algorithm

    jasypt:encrypt 명령이 초기 암호화 키를 파생하는 데 사용할 알고리즘의 식별자로 이 옵션을 따릅니다. 기본값은 PBEWithMD5AndDES 입니다.

    목록에 jasypt-list-algorithms 명령 출력이 지원되는 모든 알고리즘이 지원됩니다. 명령줄에서 알고리즘 이름을 지정할 때 자동 완성을 사용할 수 있습니다.

    예: -a PBEWITHMD5ANDRC2

    -i 또는 --iterations

    초기 키의 해시를 반복적으로 생성하는 횟수를 나타내는 정수를 사용하여 이 옵션을 따릅니다. 각 반복은 이전 해시 결과를 가져와서 다시 해시합니다. 결과는 최종 암호화 키입니다. 기본값은 1000입니다.

    예: -i 5000

    -h 또는 --hex

    16진수 출력을 얻으려면 이 옵션을 지정합니다. 기본 출력은 Base64입니다.

    예: -h

    --help

    명령 구문 및 옵션에 대한 정보를 표시합니다.

    jasypt:encrypt --help

  3. jasypt:encrypt 명령을 실행하여 얻은 암호화된 값이 포함된 속성 파일을 생성합니다. ENC() 함수에서 각 암호화된 값을 래핑합니다.

    예를 들어, 일부 LDAP 자격 증명을 etc/ldap.properties 파일에 저장한다고 가정합니다. 파일 콘텐츠는 다음과 같습니다.

    #ldap.properties
    ldap.password=ENC(VMJ5S566MEDhQ5r6jiIqTB+fao3NN4pKnQ9xU0wiDCg=)
    ldap.url=ldap://192.168.1.74:10389
  4. 암호화된 속성 자리 표시자에 필요한 네임스페이스를 블루프린트.xml 파일에 추가합니다. 이러한 네임스페이스는 Aries 확장 및 Apache Karaf Jasypt를 위한 것입니다. 예를 들면 다음과 같습니다.

    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
     	xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
     	xmlns:enc="http://karaf.apache.org/xmlns/jasypt/v1.0.0">
    ...
    </blueprint>
  5. 사용한 Jasypt 암호화 알고리즘과 속성 파일의 위치를 구성합니다. 다음 예제에서는 다음을 수행하는 방법을 보여줍니다.

    • etc/ldap.properties 파일에서 속성을 읽도록 ext:property-placeholder 요소를 구성합니다.
    • enc:property-placeholder 요소를 다음과 같이 구성합니다.

      • PBEWithMD5AndDES 암호화 알고리즘을 식별합니다.
      • Karaf bin/setenv 파일에 정의된 환경 변수 JASYPT_ENCRYPTION_PASSWORD 에서 마스터 암호를 읽습니다.

        <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
         	xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
         	xmlns:enc="http://karaf.apache.org/xmlns/jasypt/v1.0.0">
        
          <ext:property-placeholder>
            <ext:location>file:etc/ldap.properties</ext:location>
          </ext:property-placeholder>
        
          <enc:property-placeholder>
            <enc:encryptor class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
              <property name="config">
                <bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
                  <property name="algorithm" value="PBEWithMD5AndDES" />
                  <property name="passwordEnvName" value="JASYPT_ENCRYPTION_PASSWORD" />
                </bean>
              </property>
            </enc:encryptor>
          </enc:property-placeholder>
        …
        </blueprint>

초기화 벡터 속성 구성

다음 알고리즘에서는 블루프린트 구성에 ivGenerator 라는 초기화 벡터 속성을 추가해야 합니다.

PBEWITHHMACSHA1ANDAES_128
PBEWITHHMACSHA1ANDAES_256
PBEWITHHMACSHA224ANDAES_128
PBEWITHHMACSHA224ANDAES_256
PBEWITHHMACSHA256ANDAES_128
PBEWITHHMACSHA256ANDAES_256
PBEWITHHMACSHA384ANDAES_128
PBEWITHHMACSHA384ANDAES_256
PBEWITHHMACSHA512ANDAES_128
PBEWITHHMACSHA512ANDAES_256

다음 예제에서는 필요한 경우 ivGenerator 속성을 블루프린트 구성에 추가하는 방법을 보여줍니다.

<enc:property-placeholder>
  <enc:encryptor class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
    <property name="config">
      <bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
        <property name="algorithm" value="PBEWITHHMACSHA1ANDAES_128"/>
        <property name="passwordEnvName" value="JASYPT_ENCRYPTION_PASSWORD"/>
        <property name="ivGenerator">
          <bean class="org.jasypt.iv.RandomIvGenerator" />
        </property>
      </bean>
    </property>
  </enc:encryptor>
</enc:property-placeholder>

암호화된 속성 자리 표시자를 사용하는 LDAP JAAS 영역 구성

다음 예제는 Jasypt 암호화된 속성 자리 표시자를 사용하는 LDAP JAAS 영역 구성을 표시하여 이전 예제의 블루프린트.xml 파일에 추가합니다.

참고

이 항목에 설명된 프로세스를 사용하여 속성을 암호화하는 경우 @PropertyInject 주석을 사용하여 속성의 암호를 해독할 수 없습니다. 대신 이 블루프린트 예제와 같이 XML을 사용하여 Java 오브젝트에 속성을 삽입합니다.

이 예에서는 컨테이너 초기화 중에 ${ldap.password} 자리 표시자가 etc/ldap.properties 파일에서 ldap.password 속성의 해독된 값으로 교체됩니다.

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
 	xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
 	xmlns:enc="http://karaf.apache.org/xmlns/jasypt/v1.0.0">

  <ext:property-placeholder>
    <location>file:etc/ldap.properties</location>
  </ext:property-placeholder>

  <enc:property-placeholder>
    <enc:encryptor class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
      <property name="config">
        <bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
          <property name="algorithm" value="PBEWithMD5AndDES" />
          <property name="passwordEnvName" value="JASYPT_ENCRYPTION_PASSWORD" />
        </bean>
      </property>
    </enc:encryptor>
  </enc:property-placeholder>

  <jaas:config name="karaf" rank="200">
    <jaas:module className="org.apache.karaf.jaas.modules.ldap.LDAPLoginModule" flags="required">
      initialContextFactory=com.sun.jndi.ldap.LdapCtxFactory
      debug=true
        connectionURL=${ldap.url}
        connectionUsername=cn=mqbroker,ou=Services,ou=system,dc=jbossfuse,dc=com
        connectionPassword=${ldap.password}
        connectionProtocol=
        authentication=simple
        userRoleName=cn
        userBase = ou=User,ou=ActiveMQ,ou=system,dc=jbossfuse,dc=com
        userSearchMatching=(uid={0})
        userSearchSubtree=true
        roleBase = ou=Group,ou=ActiveMQ,ou=system,dc=jbossfuse,dc=com
        roleName=cn
        roleSearchMatching= (member:=uid={1})
        roleSearchSubtree=true
    </jaas:module>
  </jaas:config>

</blueprint>

환경 변수 또는 시스템 속성 지정의 예

값을 암호화할 때 일반 텍스트 마스터 암호를 지정하는 대신 환경 변수 또는 마스터 암호로 설정된 시스템 속성을 지정할 수 있습니다. 예를 들어 bin/setenv 파일에 다음이 포함되어 있다고 가정합니다.

export MASTER_PASSWORD=passw0rd

다음 명령을 사용하여 값을 암호화할 수 있습니다.

karaf@root()> jasypt:encrypt -w MASTER_PASSWORD "$en$!t!ve"
Algorithm used: PBEWithMD5AndDES
Encrypted data: /4DZCwqXD7cQ++TKQjt9QzmmcWv7TwmylCPkHumv2LQ=

etc/system.properties 파일에 다음이 포함된 경우:

master.password=passw0rd

다음 명령을 사용하여 값을 암호화할 수 있습니다.

karaf@root()> jasypt:encrypt -w master.password "$en$!t!ve"
Algorithm used: PBEWithMD5AndDES
Encrypted data: 03+8UTJJtEXxHaJkVCmzhqLMUYtT8TBG2RMvOBQlfmQ=

2.3.3. jasypt:digest 명령 호출

Jasypt 다이제스트는 MD5와 같은 암호화 해시 함수를 값에 적용한 결과입니다. 다이제스트를 생성하는 것은 단방향 암호화의 유형입니다. 다이제스트를 생성한 다음 다이제스트에서 원래 값을 재구성할 수 없습니다. 특히 민감한 값의 경우 값을 암호화하는 대신 다이제스트를 생성해야 할 수 있습니다. 그런 다음 다이제스트를 속성 자리 표시자로 지정할 수 있습니다.

다이제스트를 생성하기 위한 명령을 호출하는 형식은 다음과 같습니다.

jasypt:digest [options] [입력]

옵션을 지정하지 않고 다이제스트를 생성할 입력을 지정하지 않으면 명령에서 옵션에 기본값을 암호화하고 적용할 값을 지정하라는 메시지를 표시합니다. 예를 들면 다음과 같습니다.

karaf@root()> jasypt:digest
Input data to digest: ********
Input data to digest (repeat): ********
Algorithm used: MD5
Digest value: 8D4C0B3D5EE133BCFD7585A90F15C586741F814BC527EAE2A386B9AA6609B926AD9B3C418937251373E08F18729AD2C93815A7F14D878AA0EF3268AA04729A614ECAE95029A112E9AD56FEDD3FD7E28B73291C932B6F4C894737FBDE21AB382

다음 예제에서는 명령줄에서 입력 인수의 사양을 보여줍니다.

karaf@root()> jasypt:digest ImportantPassword

이 명령은 기본 옵션을 적용하고 ImportantPassword 의 단방향 암호화를 제공하는 다이제스트를 생성합니다. 명령 출력은 다음과 같습니다.

karaf@root()> jasypt:digest ImportantPassword
Algorithm used: MD5
Digest value: 0bL90nno/nHiTEdzx3dKa61LBDcWQQZMpjaONtY3b1fJBuDWbWTTtZ6tE5eOOPKh7orLTXS7XRt2blA2DrfnjWIlIETjge9n

단방향 암호화를 원하는 각 값에 대해 jasypt:digest 명령을 호출합니다.

기본 동작을 변경하려면 다음 옵션 중 하나 이상을 지정합니다.

옵션설명예제

-a 또는 --algorithm

jasypt:digest 명령이 다이제스트를 생성하는 데 사용할 다이제스트 알고리즘의 식별자로 이 옵션을 따릅니다. 기본값은 MD5 입니다.

목록에 jasypt-list-algorithms 명령 출력이 지원되는 모든 다이제스트 알고리즘입니다. 명령줄에서 알고리즘 이름을 지정할 때 자동 완성을 사용할 수 있습니다.

예: -a SHA-12

-i 또는 --iterations

초기 다이제스트의 해시를 반복적으로 생성하는 횟수를 나타내는 정수와 함께 이 옵션을 따릅니다. 각 반복은 이전 해시 결과를 가져와서 다시 해시합니다. 결과는 최종 다이제스트입니다. 기본값은 1000입니다.

예: -i 5000

-s 또는 --salt-size

다이제스트를 생성하기 위해 jasypt:digest 가 적용되는 salt의 바이트 수를 나타내는 정수를 사용하여 이 옵션을 따릅니다. 이 기능은 민감한 값에 대한 다이제스트를 생성하려는 경우 유용하며 둘 이상의 위치에서 다이제스트를 지정해야 합니다. 예를 들어 동일한 입력 값을 사용하지만 다른 Salt 크기로 jasypt:digest 를 호출할 수 있습니다. 각 명령은 입력이 동일하더라도 다른 다이제스트를 생성합니다. 기본값은 8입니다.

예: -s 12

-h 또는 --hex

16진수 출력을 얻으려면 이 옵션을 지정합니다. 기본 출력은 Base64입니다.

예: -h

--help

명령 구문 및 옵션에 대한 정보를 표시합니다.

jasypt:digest --help

다이제스트를 가져온 후 암호화된 속성 자리 표시자 사용에서 설명한 것과 동일한 방식으로 사용할 수 있습니다.

기본값이 아닌 값을 사용하는 경우 계산 시간이 더 오래 걸립니다. 예를 들면 다음과 같습니다.

karaf@root()> jasypt:digest --iterations 1000000 --salt-size 32 -a SHA-512 --hex passw0rd
Algorithm used: SHA-512
Digest value: 4007A85C4932A399D8376B4F2B3221E34F0AF349BB152BEAC80F03BEB2B368DA7900F0990C186DB36D61741FA147B96DC9F73481991506FAA3662EA1693642CDAB89EB7E6B1DC21E1443D06D70A5842EB2851D37E262D5FC77A1D0909B3B2783

2.3.4. jasypt:decrypt 명령 호출

암호화한 자리 표시자의 원래 값을 확인하려면 자리 표시자에서 jasypt:decrypt 명령을 호출합니다. jasypt:encrypt 명령을 호출하여 자리 표시자를 생성해야 합니다. 다음을 알고 있어야 합니다.

  • 마스터 암호 또는 마스터 암호로 설정된 환경 변수 또는 시스템 속성입니다.
  • jasypt:encrypt 명령이 값을 암호화하는 데 사용되는 알고리즘입니다.
  • jasypt:encrypt 명령이 원래 값을 암호화하는 데 사용한 반복 횟수입니다.

jasypt:decrypt 명령을 호출하는 형식은 다음과 같습니다.

jasypt:decrypt [options] [input]

옵션을 지정하지 않고 암호 해독할 암호화된 입력을 지정하지 않으면 명령에서 마스터 암호와 암호를 해독할 값을 입력하라는 메시지를 표시하고 다른 옵션에 기본값을 적용합니다. 이 예제 암호 해독이 성공하려면 jasypt:encrypt 명령에서 기본값을 사용하여 값을 암호화해야 합니다. 예를 들면 다음과 같습니다.

karaf@root()> jasypt:decrypt
Master password: ********
Data to decrypt: ********************************************
Algorithm used: PBEWithMD5AndDES
Decrypted data: $en$!t!ve

이 명령은 사용자가 지정하는 마스터 암호와 기본 알고리즘인 PBEWithMD5AndDES 를 사용하여 암호 해독 키를 만듭니다. 그러면 명령에서 이 암호 해독 키를 사용하여 프롬프트에 입력한 값을 해독합니다.

기본 동작을 변경하려면 다음 옵션 중 하나 이상을 지정합니다.

옵션설명예제

-w 또는 --password-property

환경 변수 또는 마스터 암호 값으로 설정된 시스템 속성을 사용하여 이 옵션을 따릅니다. Jasypt는 암호 해독 알고리즘과 함께 이 값을 사용하여 초기 암호 해독 키를 파생합니다.

명령을 호출한 후 -w 또는 -W 옵션을 지정하지 않으면 마스터 암호를 입력하고 확인하라는 메시지를 표시합니다.

-W MASTER_PW

- w 또는 --password

선택한 마스터 암호의 일반 텍스트 값을 사용하여 이 옵션을 따르십시오. 마스터 암호의 일반 텍스트 값이 기록에 표시됩니다.

Jasypt는 암호 해독 알고리즘과 함께 이 값을 사용하여 초기 암호 해독 키를 파생합니다.

명령을 호출한 후 -w 또는 -W 옵션을 지정하지 않으면 마스터 암호를 입력하고 확인하라는 메시지를 표시합니다.

-W "M@s!erP#"

-a 또는 --algorithm

jasypt:decrypt 명령이 초기 암호 해독 키를 파생하는 데 사용할 알고리즘의 식별자로 이 옵션을 따릅니다. 기본값은 PBEWithMD5AndDES 입니다.

jasypt:decrypt 명령은 지정된 자리 표시자 입력을 생성하는 데 사용되는 jasypt:encrypt 명령과 동일한 algortithm을 사용해야 합니다.

목록에 jasypt-list-algorithms 명령 출력이 지원되는 모든 알고리즘이 지원됩니다. 명령줄에서 알고리즘 이름을 지정할 때 자동 완성을 사용할 수 있습니다.

예: -a PBEWITHMD5ANDRC2

-i 또는 --iterations

초기 키의 해시를 반복적으로 생성하는 횟수를 나타내는 정수를 사용하여 이 옵션을 따릅니다. 각 반복은 이전 해시 결과를 가져와서 다시 해시합니다. 결과는 최종 암호 해독 키입니다. 기본값은 1000입니다.

jasypt:decrypt 명령은 지정된 자리 표시자 입력을 생성하는 데 사용되는 jasypt:encrypt 명령과 동일한 수의 반복을 사용해야 합니다.

예: -i 5000

-h 또는 --hex

16진수 출력을 얻으려면 이 옵션을 지정합니다. 기본 출력은 Base64입니다.

예: -h

- e 또는 --use-empty-iv-generator

이전 버전의 Jasypt로 암호화된 암호 해독에 고정 IV 생성기를 사용합니다.

예: -E

--help

명령 구문 및 옵션에 대한 정보를 표시합니다.

jasypt:decrypt --help

환경 변수 또는 시스템 속성 지정의 예

값을 해독할 때 일반 텍스트 마스터 암호를 지정하는 대신 환경 변수 또는 마스터 암호로 설정된 시스템 속성을 지정할 수 있습니다. 예를 들어 bin/setenv 파일에 다음이 포함되어 있다고 가정합니다.

export MASTER_PASSWORD=passw0rd

다음 명령을 사용하여 값을 해독할 수 있습니다.

karaf@root()> jasypt:decrypt -a -w MASTER_PASSWORD
Data to decrypt: ********************************************
Algorithm used: PBEWithMD5AndDES
Decrypted data: $en$!t!ve

etc/system.properties 파일에 다음이 포함된 경우:

master.password=passw0rd

다음 명령을 사용하여 값을 해독할 수 있습니다.

karaf@root()> jasypt:decrypt -w master.password
Data to decrypt: ********************************************
Algorithm used: PBEWithMD5AndDES
Decrypted data: $en$!t!ve