gpt4 book ai didi

spring - org.jasypt.exceptions.EncryptionOperationNotPossibleException

转载 作者:IT老高 更新时间:2023-10-28 13:49:57 24 4
gpt4 key购买 nike

我将 Jasypt-1.9.0Spring 3.1Hibernate 4.0.1 一起使用。我的应用程序需要连接到数据库,其密码(root)以加密形式存储在应用程序的属性文件中。

我上网查了一下,通过以下链接找到了方法:

  1. http://www.jasypt.org/spring31.html

  2. http://www.jasypt.org/hibernate.html

  3. http://www.jasypt.org/encrypting-configuration.html

我已经按照我的要求做了以下步骤和配置:

  • 在构建路径中添加了 jasypt-1.9.0jasypt-hibernate4-1.9.0。
  • 在我的 dispatcher-servlet 文件中添加了以下内容:
< 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>
  • 使用Jasypt 1.9.0的CLI工具,我已经生成了密码下面(附上 CLI 快照)

enter image description here - 添加了一个新的环境变量为 APP_ENCRYPTION_PASSWORD,其值为 root

  • database.properties文件
  • 中添加了加密密码
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)

最佳答案

这个问题很可能已经过时了,但对于 future 的寻求者......EncryptionOperationNotPossibleException 是 jasypt 抛出的一般异常,用于屏蔽其他可能的异常。在以下情况下可能会发生此异常:

  • 您的 jdk 没有安装 JCE 无限强度(最常见的情况)
  • 您的数据库中有一些数据之前使用其他密码加密
  • 您在数据库中有一些之前未加密的数据,您在某些字段中添加了加密
  • jasypt 未能从 db 中解密加密值,因为某些奇怪的数据损坏
  • 还有很多,你只需要调试找出真正的原因..

关于spring - org.jasypt.exceptions.EncryptionOperationNotPossibleException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15544266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com