<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用jasypt加密配置的時候,報錯:DecryptionException: Unable to decrypt

          共 7137字,需瀏覽 15分鐘

           ·

          2021-08-20 01:58

          前幾天分享了一篇《Spring Boot 2.x基礎(chǔ)教程:加密配置中的敏感信息》 (https://blog.didispace.com/spring-boot-learning-2-1-5/),然后看到群里有小伙伴反應(yīng)跟著這篇文章出現(xiàn)了這個異常com.ulisesbocchio.jasyptspringboot.exception.DecryptionException: Unable to decrypt。

          具體完整的錯誤信息如下:

          Caused by: com.ulisesbocchio.jasyptspringboot.exception.DecryptionException: Unable to decrypt: ENC(/AL9nJENCYCh9Pfzdf2xLPsqOZ6HwNgQ3AnMybFAMeOM5GphZlOK6PxzozwtCm+Q). Decryption of Properties failed,  make sure encryption/decryption passwords match
           at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.lambda$resolvePropertyValue$0(DefaultPropertyResolver.java:46) ~[jasypt-spring-boot-3.0.3.jar:na]
           at java.util.Optional.map(Optional.java:215) ~[na:1.8.0_151]
           at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.resolvePropertyValue(DefaultPropertyResolver.java:40) ~[jasypt-spring-boot-3.0.3.jar:na]
           at com.ulisesbocchio.jasyptspringboot.resolver.DefaultLazyPropertyResolver.resolvePropertyValue(DefaultLazyPropertyResolver.java:50) ~[jasypt-spring-boot-3.0.3.jar:na]
           at com.ulisesbocchio.jasyptspringboot.EncryptablePropertySource.getProperty(EncryptablePropertySource.java:20) ~[jasypt-spring-boot-3.0.3.jar:na]
           at com.ulisesbocchio.jasyptspringboot.caching.CachingDelegateEncryptablePropertySource.getProperty(CachingDelegateEncryptablePropertySource.java:41) ~[jasypt-spring-boot-3.0.3.jar:na]
           at com.ulisesbocchio.jasyptspringboot.wrapper.EncryptableMapPropertySourceWrapper.getProperty(EncryptableMapPropertySourceWrapper.java:31) ~[jasypt-spring-boot-3.0.3.jar:na]
           at org.springframework.core.env.PropertySourcesPropertyResolver.getProperty(PropertySourcesPropertyResolver.java:85) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.core.env.PropertySourcesPropertyResolver.getProperty(PropertySourcesPropertyResolver.java:62) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.core.env.AbstractEnvironment.getProperty(AbstractEnvironment.java:588) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.context.support.PropertySourcesPlaceholderConfigurer$1.getProperty(PropertySourcesPlaceholderConfigurer.java:137) ~[spring-context-5.3.8.jar:5.3.8]
           at org.springframework.context.support.PropertySourcesPlaceholderConfigurer$1.getProperty(PropertySourcesPlaceholderConfigurer.java:133) ~[spring-context-5.3.8.jar:5.3.8]
           at org.springframework.core.env.PropertySourcesPropertyResolver.getProperty(PropertySourcesPropertyResolver.java:85) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.core.env.PropertySourcesPropertyResolver.getPropertyAsRawString(PropertySourcesPropertyResolver.java:74) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:159) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-5.3.8.jar:5.3.8]
           at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:175) ~[spring-context-5.3.8.jar:5.3.8]
           at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:936) ~[spring-beans-5.3.8.jar:5.3.8]
           at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1321) ~[spring-beans-5.3.8.jar:5.3.8]
           at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.8.jar:5.3.8]
           at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.3.8.jar:5.3.8]
           at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.3.8.jar:5.3.8]
           at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.8.jar:5.3.8]
           at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.8.jar:5.3.8]
           ... 69 common frames omitted
          Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException: null
           at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1165) ~[jasypt-1.9.3.jar:na]
           at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:738) ~[jasypt-1.9.3.jar:na]
           at org.jasypt.encryption.pbe.PooledPBEStringEncryptor.decrypt(PooledPBEStringEncryptor.java:511) ~[jasypt-1.9.3.jar:na]
           at com.ulisesbocchio.jasyptspringboot.encryptor.DefaultLazyEncryptor.decrypt(DefaultLazyEncryptor.java:57) ~[jasypt-spring-boot-3.0.3.jar:na]
           at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.lambda$resolvePropertyValue$0(DefaultPropertyResolver.java:44) ~[jasypt-spring-boot-3.0.3.jar:na]
           ... 94 common frames omitted

          直接根據(jù)錯誤信息的描述來判斷,就是解密失敗了。

          下面整理一下可能產(chǎn)生解密失敗的幾種可能:

          第一種:推測解密失敗的原因是加密和解密使用的密鑰不一致,也就是jasypt.encryptor.password的配置和使用插件時候的參數(shù)傳的不同。

          第二種:沒有安裝不限長度的JCE版本(Unlimited Strength Java Cryptography Extension)。因為DD以前在用Spring Cloud Config的時候已經(jīng)裝過了,所以在寫之前這個案例的時候沒有提到這點,應(yīng)該一些還沒有接觸Spring Cloud的讀者通常都是這個原因?qū)е隆F鋵嵾@個在之前的《分布式配置中心(加密解密)》(https://blog.didispace.com/spring-cloud-starter-dalston-3-2/) 一文中提過,但因為不屬于一個系列內(nèi)容,這里所以再提一下。

          我們可以從Oracle的官方網(wǎng)站中下載你所用Java版本對應(yīng)的JCE安裝包,比如:JCE8下載地址(https://www.oracle.com/java/technologies/javase-jce8-downloads.html)。它是一個壓縮包,解壓后可以看到下面三個文件:

          README.txt
          local_policy.jar
          US_export_policy.jar

          我們需要將local_policy.jarUS_export_policy.jar兩個文件復(fù)制到$JAVA_HOME/jre/lib/security目錄下,覆蓋原來的默認內(nèi)容,這樣加密解密的準備工作就完成了。

          最后如果你在學(xué)習(xí)Spring Boot,推薦一下這個從2016年連載至今的系列教程點擊直達(http://blog.didispace.com/spring-boot-learning-2x/),歡迎收藏與轉(zhuǎn)發(fā)!

          如果學(xué)習(xí)過程中如遇困難?可以加入我們 Spring技術(shù)交流群 ,參與交流與討論,更好的學(xué)習(xí)與進步!關(guān)注文末公眾號,回復(fù)“加群”,即可加入我們啦!


          往期推薦

          YYDS 的 IDEA插件,沒裝上的安排起來!

          混合辦公時代來了?攜程試點每周兩天居家辦公,76%的員工主動報名!

          騰訊年度性愛報告發(fā)布,最后一條數(shù)據(jù)羞愧了...

          攤牌了,這些全是假的!埋了4個月的彩蛋都沒被發(fā)現(xiàn)...

          Stack Overflow 最火的一段代碼竟然有 Bug...


          喜歡本文歡迎轉(zhuǎn)發(fā),關(guān)注我訂閱更多精彩

          關(guān)注我回復(fù)「加群」,加入Spring技術(shù)交流群

          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产理论在线观看 | 欧美靠逼视频 | 国产精品 亚洲无码 | 手机在线永久免费观看AV片 | 超碰日韩在线 |