You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring非Boot项目在applicationContext.xml用Jasypt加密密码遇ORA-01017错误求助

解决非Spring Boot Spring项目中Jasypt密码加密未生效的问题

嘿,你的这个ORA-01017错误很明确——Spring根本没把你那串ENC(...)的密文解密成真实密码,直接把密文传给Oracle了,那肯定登不上啊。非Spring Boot的项目没法像Spring Boot那样靠自动配置一键搞定Jasypt,你大概率是漏了几个核心配置步骤,我帮你逐个理清楚:

  • 1. 必须手动配置Jasypt加密器Bean
    你只加了Jar包和修改了密码格式,但Spring完全不知道该用什么算法、密钥来解密ENC()里的内容。得在applicationContext.xml里添加加密器的配置,比如用Jasypt常用的PBEWithMD5AndDES算法:

    <bean id="jasyptStringEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
        <property name="algorithm" value="PBEWithMD5AndDES"/>
        <property name="password" value="你的加密密钥"/> <!-- 这个密钥必须和你加密原始密码时用的完全一致 -->
    </bean>
    

    划重点:这里的password是你用来加密原始数据库密码的密钥,不是数据库本身的密码,千万别搞混!

  • 2. 替换Spring默认的属性占位符处理器
    原生的PropertyPlaceholderConfigurer根本不认识ENC()这种格式,你得换成Jasypt提供的EncryptablePropertyPlaceholderConfigurer,它才会自动识别并解密密文:

    <bean class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer">
        <constructor-arg ref="jasyptStringEncryptor"/>
        <!-- 如果你的配置分散在多个properties文件,这里用locations指定路径 -->
        <property name="locations">
            <list>
                <value>classpath:db.properties</value>
            </list>
        </property>
    </bean>
    

    要是你直接在applicationContext.xml里硬编码了数据库连接配置(没引用外部properties),也要确保这个加密器被关联到数据源的配置逻辑中,否则密文还是不会被解密。

  • 3. 验证加密密文的生成是否正确
    你得确认那串ENC(...)是用Jasypt官方工具生成的,不是自己随便写的。可以用命令行工具快速生成:

    java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="你的原始数据库密码" password="你的加密密钥" algorithm=PBEWithMD5AndDES
    

    命令执行后输出的ENC(...)字符串才是你该放到配置里的内容,仔细检查有没有复制错符号或者漏字符。

  • 4. 确保Jasypt依赖完整
    你说加了Jasypt 1.9.2的Jar包,要确认是完整的jasypt-1.9.2.jar,不是某个精简版。如果用Maven管理依赖,直接加下面的配置更稳妥:

    <dependency>
        <groupId>org.jasypt</groupId>
        <artifactId>jasypt</artifactId>
        <version>1.9.2</version>
    </dependency>
    

如果做完这些还是有问题,建议开启Jasypt的调试日志,看看解密过程有没有抛出异常,比如密钥不匹配、算法不一致之类的,这些日志能帮你快速定位问题。

内容的提问来源于stack exchange,提问作者JavaSheriff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:26:39