java 压缩加密 github_关于Java:使用github中的AES-256-CBC加密

本问题已经有最佳答案,请猛点这里访问。

我想使用这些课程

https://github.com/fukata/AES-256-CBC-示例

在我的项目中,但是即使我不进行任何更改而对其进行编译,也会导致错误:

Exception in thread"main" java.lang.RuntimeException:

java.security.InvalidKeyException: Illegal key size at

AESUtil.encrypt(AESUtil.java:23) at AESMain.main(AESMain.java:10)

Caused by: java.security.InvalidKeyException: Illegal key size at

javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039) at

javax.crypto.Cipher.implInit(Cipher.java:805) at

javax.crypto.Cipher.chooseProvider(Cipher.java:864) at

javax.crypto.Cipher.init(Cipher.java:1396) at

javax.crypto.Cipher.init(Cipher.java:1327) at

AESUtil.encrypt(AESUtil.java:20) ... 1 more

如何解决非法密钥大小?

我下载了它并将Java文件夹复制到我的项目中。 任何帮助,将不胜感激 :)

本质上,密钥长度为128位的AES加密与256位一样安全,不能强行使用。

@zaph是的,但是我想将AES-256与32byte IV一起使用,现在上面的类抛出错误:java.security.InvalidAlgorithmParameterException: Wrong IV length: must be 16 bytes long因为我使用了32byte IV

32字节的IV毫无意义,CBC模式下的AES需要16字节的IV。

@ J.Kennsy AES支持三种密钥长度:128、192和256位,以及一种IV长度,与块大小相同:128位(16字节)。

我相信您将需要安装Java密码学无限强度扩展:

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

好吧,指示说我应该将两个罐子都粘贴到/ lib / security文件夹中,但是我的那儿不存在(我有jdk,但是我猜没有改变)。

@ J.Kennsy对于JDK,jre目录位于jdk目录下,因此其jdk [version] / jre / lib / security。 请注意,您未确定的Java版本的无限制策略有所不同; 对于8个,请使用oracle.com/technetwork/java/javase/downloads/;对于9个,最后则不需要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值