java.lang.IllegalArgumentException:由于无效的密钥而无法初始
发布时间:2020-12-15 04:30:14 所属栏目:Java 来源:网络整理
导读:我收到加密异常. 我在跑 OS X 10.11 Java 1.8 Groovy版本:2.4.4 Gradle 2.3-20141027185330 0000; JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_05.jdk / Contents / Home 我将Oracle JCE Policy jar安装到我的$JAVA_HOME / lib / secur
我收到加密异常.
我在跑 > OS X 10.11 我将Oracle JCE Policy jar安装到我的$JAVA_HOME / lib / security目录中: $ls -l $JAVA_HOME/lib/security total 16 -rw-r--r--@ 1 root wheel 2487 Oct 9 17:21 US_export_policy.jar -rw-r--r--@ 1 root wheel 2500 Oct 9 17:21 local_policy.jar 这是例外: com.distributedfinance.mbi.bai.lookup.AccountLookupSpec > constructor missing encryptor FAILED 19:05:00.431 [DEBUG] [TestEventLogger] java.lang.IllegalArgumentException: Unable to initialize due to invalid secret key 19:05:00.431 [DEBUG] [TestEventLogger] at org.springframework.security.crypto.encrypt.CipherUtils.initCipher(CipherUtils.java:110) 19:05:00.431 [DEBUG] [TestEventLogger] at org.springframework.security.crypto.encrypt.AesBytesEncryptor.encrypt(AesBytesEncryptor.java:65) 19:05:00.431 [DEBUG] [TestEventLogger] at org.springframework.security.crypto.encrypt.HexEncodingTextEncryptor.encrypt(HexEncodingTextEncryptor.java:36) 19:05:00.431 [DEBUG] [TestEventLogger] at com.distributedfinance.mbi.bai.lookup.AccountLookupSpec.setup(AccountLookupSpec.groovy:26) 19:05:00.431 [DEBUG] [TestEventLogger] 19:05:00.431 [DEBUG] [TestEventLogger] Caused by: 19:05:00.431 [DEBUG] [TestEventLogger] java.security.InvalidKeyException: Illegal key size 19:05:00.431 [DEBUG] [TestEventLogger] at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1034) 19:05:00.431 [DEBUG] [TestEventLogger] at javax.crypto.Cipher.implInit(Cipher.java:800) 19:05:00.431 [DEBUG] [TestEventLogger] at javax.crypto.Cipher.chooseProvider(Cipher.java:859) 19:05:00.432 [DEBUG] [TestEventLogger] at javax.crypto.Cipher.init(Cipher.java:1370) 19:05:00.432 [DEBUG] [TestEventLogger] at javax.crypto.Cipher.init(Cipher.java:1301) 19:05:00.432 [DEBUG] [TestEventLogger] at org.springframework.security.crypto.encrypt.CipherUtils.initCipher(CipherUtils.java:105) 19:05:00.432 [DEBUG] [TestEventLogger] ... 3 more 代码片段: import com.distributedfinance.mbi.payment.repository.AccountRepository import com.distributedfinance.mbi.domain.Account import org.springframework.security.crypto.encrypt.Encryptors import org.springframework.security.crypto.encrypt.TextEncryptor class AccountLookupSpec extends Specification { public static final Logger LOGGER = LoggerFactory.getLogger(AccountLookupSpec.class) AccountLookup accountL ookup List<Account> accounts AccountRepository accountRepository TextEncryptor encryptor def setup() { accountRepository = Mock() encryptor = Encryptors.text("password","991239bab013") accounts = new ArrayList<Account>() Account account = new Account() account.setAccountNumber(encryptor.encrypt("1234567890")) } ... } 解决方法
这个问题最常见的原因是/ lib / security没有安装Java密码术扩展(JCE)无限强度管辖权策略文件
Download the Java 7 jar from here Download the Java 8 jar from here 按照自述文件,你应该启动并运行 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |