java.lang.IllegalArgumentException:由于密钥无效而无法初始化

2024-04-23

我遇到加密异常。

我在跑

  • 操作系统 X 10.11
  • 爪哇1.8
  • Groovy 版本:2.4.4
  • 摇篮2.3-20141027185330+0000;
  • JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home

我将 Oracle JCE 策略 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 Cryptography Extension (JCE) 无限强度管辖策略文件

从这里下载 Java 7 jar http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

从这里下载 Java 8 jar http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

按照自述文件操作,您应该可以启动并运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.lang.IllegalArgumentException:由于密钥无效而无法初始化 的相关文章

  • 带有 API 21 的 Snackbar

    我正在尝试在我的应用程序中实现新的 Snackbars 但我做不到 首先 我从以下位置下载了 zip 文件这个 SnackBarSampleActivity https github com nispok snackbar blob mas
  • 使用 BufferedImages 获取图像每个像素的颜色

    我试图获取图像的每个像素的每种颜色 我的想法如下 int pixels BufferedImage image image ImageIO read this getClass getResources image png int pixe
  • Webdriver - 等待在 Firefox 中不起作用

    在我的应用程序中 我有一个用于在屏幕上显示记录的元素 所以在第一页上 它会显示类似 显示 2100 的 1 10 之类的内容 这是该元素的 CSS 它适用于所有浏览器 span GridPagingInfo 在我位于 iframe 中的应用
  • SQL错误:1054,SQLState:42S22“字段列表”中的未知列错误Java Spring Boot Mysql错误

    基本上我正在尝试制作一个简单的促销页面 我收到的错误是 SQL 错误 1054 SQLState 42S22 错误是 字段列表 中的未知列 promotion0 promo type id 这是模型类 package promotions
  • 生成总和为 N 的所有数字排列

    我正在编写一个程序来创建所有数字 起初 我尝试使用分区函数对数字进行分区 然后对每个数字集进行排列 但是我认为这行不通 最好的方法是递归排列 同时对数字求和 这超出了我的能力范围 抱歉 如果这听起来真的很愚蠢 但我真的不知道 Example
  • 在 Java 中引发竞争条件

    我必须编写一个引发竞争条件的单元测试 以便我可以测试稍后是否可以解决问题 问题是竞争条件很少发生 可能是因为我的计算机只有两个核心 代码如下 class MyDateTime String getColonTime datetime is
  • 如何使用 p2-maven-plugin 将插件和功能打包到 OSGI 包中

    我已经创建了一个插件和功能项目 用于插件 我正在使用 tycho maven 来构建它 我能够成功构建它 现在我想打包成 osgi 包 plugin jar feature jar artifacts jar content jar 为此
  • Spring Boot 中的 spring.jpa.open-in-view=true 属性是什么?

    I saw spring jpa open in view trueSpring Boot 文档中用于 JPA 配置的属性 Is the true如果根本没有提供此属性的默认值 这到底有什么作用 我没有找到任何好的解释 它让你使用Sessi
  • 使用服务器帐户模拟用户以访问其 Google 云端硬盘时出现 401 未经授权错误

    我正在用 Java 编写一个后端进程 它将模拟用户并在其 Google Drive 上添加 删除文档 服务器帐户似乎验证正确 但是当我尝试冒充用户时 我得到一个401 Unauthorized error 请参阅下面的详细信息 配置 我已配
  • 一个好的 Java VM 中方法调用的开销是多少?

    有人可以提供反汇编的机器代码汇编程序列表吗 我的意思是 与 C 中的普通函数调用相比 肯定有一些开销 VM 需要跟踪调用以查找热点 并且当它使用编译代码时 如果新加载的类需要重新编译 它需要提供动态更改编译方法的方法 我想某处也有返回堆栈溢
  • Java 中排序(内存映射?)文件中的二分搜索

    我正在努力将 Perl 程序移植到 Java 并一边学习 Java 原始程序的核心组成部分是Perl模块 http search cpan org jfreeman File SortedSeek 0 015 lib File Sorted
  • 尽管 CRC 错误,仍强制 gzip 解压缩

    我认为有办法做到这一点 但我不确定如何做 基本上 我正在编写一个压缩程序 当我尝试解压缩压缩数据时 该程序导致了 crc 错误 通常 这意味着解压缩器实际上将我的数据识别为正确的格式并将其解压缩 但是当它将结果与 CRC 指示的预期长度进行
  • Android:如何按下软键盘上方的按钮

    我有一个 保存 按钮 我想将其与软键盘一起按下 因此 当用户单击布局中的 EditText 时 按钮必须保持在键盘上方 现在该按钮隐藏在键盘下方 你怎么做到这一点 提前致谢 您需要将键盘的输入模式设置为adjustResize 您可以通过将
  • 设置正则表达式中的最小和最大字符

    我写了一个正则表达式 http en wikipedia org wiki Regular expression匹配任意数量的字母 字母之间有任意数量的单个空格 我希望该正则表达式也强制执行最小和最大字符数 但我不确定如何做到这一点 或者是
  • 在 Java、Android 上从 Youtube 下载视频的代码

    我创建了从 Youtube 下载视频的代码 但此代码不适用于 Wi fi 连接 但适用于移动连接 我哪里有错误 import java io File import java io FileOutputStream import java
  • 尝试在 Spring MVC 中使用 OAuth 保护资源

    我们已经在 Spring MVC 上使用 Java 编写了 REST Web 服务 我一直在努力保护它们 OAuth 服务器在另一个网站中实现 该网站处理登录和访问令牌的创建 因此 在允许用户访问网络服务之前 我需要验证访问令牌是否正确 然
  • 2010 年的 java 并发修改异常灾难

    绘制一些存储在 ArrayList 中的粒子 这段代码工作正常 super paintComponent g for Particle b particleArr g setColor b getColor g fillOval b get
  • ConcurrentLinkedDeque 与 LinkedBlockingDeque

    我需要一个线程安全的 LIFO 结构 并发现我可以使用线程安全的实现Deque为了这 Java 7 引入了ConcurrentLinkedDeque http docs oracle com javase 7 docs api java u
  • 如何通过代码使用 Google 翻译 API

    我正在尝试创建一个可以发送单词的应用程序翻译 google com 获取翻译结果并将其显示给用户 我编写了 URL 但我不知道如何从网页中提取单词 短语 伪示例 en 是英语代码 es 是西班牙语代码 String from en Stri
  • 带有 wsdl2java 插件的 gradle

    我正在使用 no nils wsdl2java 插件 完整的 gradle build 文件如下所示 plugins id org springframework boot version 2 3 4 RELEASE id io sprin

随机推荐