這是本文件的舊版!


Jasypt

如果有使用PowerMock做測試,記得ignore掉這幾個項目。

@PowerMockIgnore({
	"javax.crypto.*",
	"javax.security.*"
	})

如果出現Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File錯誤訊息,請自行到Oracle官網下載JCE包(JCE for Java8),並安裝到%JAVA_HOME%/jre/lib/security中。如果有問題,可以設定JAVA_HOME環境變數再試試看。 (JCE包內容有US_export_policy.jar與local_policy.jar)

最簡單的方式

<hibernate-mapping>
    <typedef name="encryptedString" class="org.jasypt.hibernate4.type.EncryptedStringType">
      <param name="algorithm">PBEWithMD5AndTripleDES</param>
      <param name="password">jasypt</param>
      <param name="keyObtentionIterations">1000</param>
    </typedef>
    <class name="org.tonylin.fun.tonyaccounts" table="tony_accounts">
        <!-- Other items -->
        <property name="password" type="encryptedString">
            <column name="PASSWORD" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

使用自己的Encryptor

<hibernate-mapping> 
    <typedef name="encryptedString" class="org.jasypt.hibernate4.type.EncryptedStringType">
      <param name="encryptorRegisteredName">tonyEncryptor</param>
    </typedef> 
    <class name="org.tonylin.fun.tonyaccounts" table="tony_accounts">
        <!-- Other items -->
        <property name="password" type="encryptedString">
            <column name="PASSWORD" not-null="true" />
        </property>
    </class>
</hibernate-mapping>
  <bean id="strongEncryptor"
    class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
    <property name="algorithm">
        <value>PBEWithMD5AndTripleDES</value>
    </property>
    <property name="password">
        <value>jasypt</value>
    </property>
    <property name="keyObtentionIterations">
        <value>1000</value>
    </property>
  </bean>
 
  <bean id="hibernateStringEncryptor"
    class="org.jasypt.hibernate4.encryptor.HibernatePBEStringEncryptor">
    <property name="registeredName">
        <value>tonyEncryptor</value>
    </property>
    <property name="encryptor">
        <ref bean="strongEncryptor" />
    </property>
  </bean>