我使用的是Jasypt-1.9.0和Spring3.1和Hibernate 4.0.1。在我的应用程序中,我需要连接到其密码(Root)以加密形式存储在应用程序中的属性文件中的数据库。
我在网上查了一下,找到了以下链接:
我已经为我的需求完成了以下步骤和配置:
< bean id="propertyConfigurer"
class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
< constructor-arg ref="configurationEncryptor" />
< property name="locations">
< list>
< value>classpath:database.properties< /value>
< /list>
< /property>
< /bean>
< bean id="configurationEncryptor"
class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
< property name="config" ref="environmentVariablesConfiguration" />
< /bean>
< bean id="environmentVariablesConfiguration"
class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
< property name="algorithm" value="PBEWithMD5AndDES" />
< property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" />
</bean>
db.driverClassName=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/db1
db.username=root
db.password=ENC(bmfeQmgP/hJrh+mj6NANKA==)
现在,如果我运行我的应用程序,将出现以下异常:
org.jasypt.exceptions.EncryptionOperationNotPossibleException
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:981)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:725)
at org.jasypt.properties.PropertyValueEncryptionUtils.decrypt(PropertyValueEncryptionUtils.java:72)
发布于 2014-07-29 07:57:10
这个问题很可能已经过时了,但对于未来的探索者来说.EncryptionOperationNotPossibleException是jasypt引发的一般异常,以掩盖其他可能的异常。此异常可在下列情况下发生:
发布于 2020-03-03 13:55:07
如果在加密过程中不指定所有参数,Jasypt将使用默认值。确保在解密期间使用这些确切的默认值。否则你可能有麻烦..。
这是我的工作:
mvn jasypt:encrypt -Djasypt.encryptor.password='secret' \
-Djasypt.encryptor.algorithm=PBEWITHHMACSHA512ANDAES_256 \
-Djasypt.encryptor.iv-generator-classname=org.jasypt.iv.RandomIvGenerator \
-Djasypt.encryptor.salt-generator-classname=org.jasypt.salt.RandomSaltGenerator \
-Djasypt.encryptor.key-obtention-iterations=1000 \
-Djasypt.plugin.path='file:application.yml'
mvn jasypt:decrypt -Djasypt.encryptor.password='secret' \
-Djasypt.encryptor.algorithm=PBEWITHHMACSHA512ANDAES_256 \
-Djasypt.encryptor.iv-generator-classname=org.jasypt.iv.RandomIvGenerator \
-Djasypt.encryptor.salt-generator-classname=org.jasypt.salt.RandomSaltGenerator \
-Djasypt.encryptor.key-obtention-iterations=1000 \
-Djasypt.plugin.path='file:application.yml'
发布于 2017-10-23 07:08:56
在加密属性文件值时,我也遇到了类似的问题。我在本地Windows机器中加密了值,并试图部署在Linux中,但是JRE版本是不同的,因此加密的值无法解密。但我对Linux机器中的值进行了加密,解密成功了。
https://stackoverflow.com/questions/15544266
复制相似问题