AES的256位密钥加解密报 java.security.InvalidKeyException: Illegal key size or default parameters 异常的处理及处理工具

2023-10-31

在做第三方对接进行AES加密(256位)的时候遇到的错误,这哥们写的非常详细。
转载地址:https://blog.csdn.net/dafeige8/article/details/76019911

一、出现的现象
为了数据代码在传输过程中的安全,很多时候我们都会将要传输的数据进行加密,然后等对方拿到后再解密使用。我们在使用AES加解密的时候,在遇到128位密钥加解密的时候,没有进行什么特殊处理;然而,在使用256位密钥加解密的时候,如果不进行特殊处理的话,往往会出现报“java.security.InvalidKeyException: Illegal key size or default parameters”的异常,那么这是为什么呢?今天我们来讲一讲。

二、为什么会出现这样的现象
我们做Java开发,或是Android开发,都会先在电脑上安装JDK(Java Development Kit) 并配置环境变量,JDK也就是 Java 语言的软件开发工具包,JDK中包含有JRE(Java Runtime Environment,即:Java运行环境),JRE中包括Java虚拟机(Java Virtual Machine)、Java核心类库和支持文件,而我们今天要说的主角就在Java的核心类库中。在Java的核心类库中有一个JCE(Java Cryptography Extension),JCE是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现,所以这个是实现加密解密的重要类库。

在我们安装的JRE目录下有这样一个文件夹:%JAVE_HOME%\jre\lib\security(%JAVE_HOME%是自己电脑的Java路径,一版默认是:C:\Program Files\Java,具体看自己当时安装JDK和JRE时选择的路径是什么),其中包含有两个.jar文件:“local_policy.jar ”和“US_export_policy.jar”,也就是我们平时说的jar包,再通俗一点说就是Java中包含的类库(Sun公司的程序大牛封装的类库,供使用Java开发的程序员使用),这两个jar包就是我们JCE中的核心类库了。JRE中自带的“local_policy.jar ”和“US_export_policy.jar”是支持128位密钥的加密算法,而当我们要使用256位密钥算法的时候,已经超出它的范围,无法支持,所以才会报:“java.security.InvalidKeyException: Illegal key size or default parameters”的异常。那么我们怎么解决呢?

三、怎么解决这个异常
这个问题oracle公司早就替我们想到了(脑补一下,别懵了:Java是Sun开发的一种编程语言,2009年oracle宣布收购Sun公司,从此两家就是一家了),所以在oracle官网给我们提供有Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files X(即:Java加密扩展(JCE)无限强度权限政策文件),也就是所谓的JCE的无敌加强版,后面的“X”代表的是对应的JDK版本。该文件中只包含了“local_policy.jar ”和“US_export_policy.jar”这两个jar包,我们只需要拿这两个jar包替换掉自己JRE中的对应jar包就行了。

注意:需要特别注意的一点就是,替换的JCE版本要和自己电脑上的JDK版本一一对应。比如说:自己电脑上安装的是JDK 8,则需要安装与之对应的JCE版本Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8。

为了方便大家,我这里直接将官网地址贴上,节省大家的时间,也希望大家顶我一下。

JDK8:

其对应的JCE下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

下载完后,解压,将其中的“local_policy.jar
”和“US_export_policy.jar”两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是自己电脑的Java路径)。

JDK7:

其对应的JCE下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

下载完后,解压,将其中的“local_policy.jar
”和“US_export_policy.jar”两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是自己电脑的Java路径)。

JDK6:

其对应的JCE下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

下载完后,解压,将其中的“local_policy.jar
”和“US_export_policy.jar”两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是自己电脑的Java路径)。

下载完后,解压,将其中的“local_policy.jar ”和“US_export_policy.jar”两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是自己电脑的Java路径)。

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

AES的256位密钥加解密报 java.security.InvalidKeyException: Illegal key size or default parameters 异常的处理及处理工具 的相关文章

  • docker 遇到的问题

    docker stop container id 失败 显示 root 64 docker stop onos1 Error response from daemon cannot stop container onos1 permissi
  • python3安装tensorflow遇到的问题

    1 使用命令 xff1a sudo pip3 install upgrade https storage googleapis com tensorflow linux cpu tensorflow 1 1 0rc2 cp35 cp35m
  • ORA-31626 ORA-01658 使用impdp遇到的问题

    oracle使用impdp导库时遇到的问题 xff0c span class token punctuation span oracle span class token variable 64 qsrac2 span span class
  • java持久层框架数据源加密

    学习目标 java持久层框架数据源加密 文章目录 学习目标 1 mybatis框架数据源加密 https www cnblogs com melovemingming p 10699613 html 这里是引用https www cnblo
  • java与数据库数据加密方法

    1 java测试加密代码 AES和HEX加密及解密工具类 AES加解密字符串工具类 public class AesEncrypt public static void main String args String aes en aes
  • 前后端RSA加解密

    前端vue RSA加密 一 安装 npm install jsencrypt save dev 二 创建js文件 在src目录下创建util文件夹 然后在util文件夹下创建 security js 文件 1 引入jsencrypt 引入加
  • DSB Security 如何优雅的进行敏感数据的传输?

    DSB Security 如何优雅的进行敏感数据的传输 对于项目中的敏感数据处理 很多同学刚开始接触的时候 往往觉得比较繁琐 项目中实现的方式也是千奇百怪 基本就是百度搜索和粘贴 对于敏感数据的处理 是任何一家互联网公司必须要注重的事情 用
  • RSA加密算法(公钥+私钥加密)

    公开密钥加密 公开密钥加密 public key cryptography 也成为非对称加密 是密码学的一种算法 他需要两个密钥 一个是公开密钥 另一个是私有密钥 一个用作加密的时候 另一个则用作解密 明文 需要加密的内容 成为明文 密文
  • java BigDecimal 保留两位小数

    在 Java 中 可以使用 setScale 方法来设置 BigDecimal 对象的小数位数 以下是一个例子 演示了如何将 BigDecimal 对象保留两位小数 BigDecimal number new BigDecimal 3 14
  • 了解PHP的几种常见的加密方式

    常用的几种加密方式 md5加密 Md5是一种单向的加密技术 不可逆 不能进行解密 crypt加密 crypt 为单向加密 跟md5差不多一样 sha1加密 跟md5很像 不同的是sha1 默认情况下返回40个字符的散列值 传入参数性质一样
  • js加密字符串

    字符串加密 用javascript对字符串进行加密 应用于参数传递等 默认加密密钥为kb1234 使用者可自定义修改 注意加密密钥应和解密密钥相同 算法来自于互联网 使用方法 加密 var code kbt encrypt 我爱北京天安门
  • javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with pad

    今天在做AES加密时 项目中出现javax crypto IllegalBlockSizeException Input length must be multiple of 16 when decrypting with padded c
  • 【安装问题】python安装weditor出现报错总结

    python安装weditor出现报错总结 问题描述 主要原因是公司使用的python2版本过老 由于不能随意升级python版本 只能在python2的基础上解决办法 有很多地方需要更新 总结命令如下 基本上试过一遍 问题就可以解决了 解
  • 无需解密代码!软件保护专家VMProtect 2020全新升级!更丰富的保护功能

    VMProtect是新一代的软件保护实用程序 具有内置的反汇编程序 可与Windows和Mac OS X可执行程序配合使用 还可以链接编译器创建的MAP文件 以快速选择代码片段进行保护 VMProtect的基本原则是通过使应用程序代码和逻辑
  • S-DES的简单理解和实例

    S DES是一个供教学而非安全使用的加密算法 与DES的特性和结构类似 但它参数小 明文分组为8位 主密钥分组为10位 采用两轮选代 例题 采用手工方式使用 S DES用密钥 01111 11101 解密比特串 1010 0010 写出每个
  • Bcrypt 加密算法研究与对比

    Bcrypt 加密算法研究与对比 一 什么是Bcrypt 二 Bcrypt如何加密与验证 一 encode方法加密 二 matches方法验证 三 如果使用彩虹表进行hash碰撞攻击会如何 四 比较 MD5加密算法的缺陷 相对于MD5 Bc
  • ASCII Unicode, UTF8 的关系,string和wstring转换

    目录 1 三大编码由来和转换 2 三大编码在计算机中应用 3 char string 和wchar t wstring 转换 写这篇文章遇到的的问题是c 操作正则的时候 遇到中文出现匹配失败 以及visual studio中中文乱码问题 当
  • 以太坊的MPT树,以及编码,leveldb存储

    声明 此为使用网上多处资料整理而成 由于很多地方内容相同 已经分不清哪里是原创 一 MPT树 1 Trie树 Trie 又称为字典树或者前缀树 prefix tree 属于查找树的一种 它与平衡二叉树的主要不同点包括 每个节点数据所携带的
  • L2TP和PPTP的区别

    用最短的时间搞清楚L2TP和PPTP的区别 一 相关知识铺垫 1 虚拟隧道协议 一种通过公共网络的基础设施 在专用网络或专用设备之间实现加密数据通信的技术 通信的内容是可以是任何通信协议的数据包 隧道协议将这些协议的数据包重新封装在新的包中
  • web端hadoop hdfs管理界面,上传文件失败

    网页端hadoop管理界面 上传文件失败 但从后台put文件到HDFS 查看前端页面报错 地址解析错误 查看host文件发现ip地址和主机名对应错误 修改host后恢复正常

随机推荐

  • 外企程序员常用英语单词

    1 cognitive k n t v adj 认知的 认识的 2 risk r sk n 风险 危险 冒险 vt 冒 的危险 n Risk 人名 英 阿拉伯 里斯克 3 berries beriz 浆果类 4 vegetables ved
  • Mac使用经验分享 - 总览

    Mac本身支持的效率操作 各种快捷键的使用 Mac系统本身支持很多的快捷键 这些快捷键能够很大程度的提升使用效率 在此处简单列出一些我经常使用的快捷键 权作参考 W 关闭当前窗口 M 最小化当前窗口 W 关闭所有finder窗口 有一个fi
  • LLVM介绍

    文章目录 LLVM介绍 一 LLVM三段式架构 1 传统编译器的三段式 2 LLVM的三段式 二 Clang与LLVM的关系 三 LLVM 编译流程 LLVM介绍 在理解LLVM时 我们可以认为它包括了一个狭义的LLVM和一个广义的LLVM
  • mysql实现读写分离自带java驱动

    MySQL 数据库的读写分离和负载均衡一般是通过第三方软件来实现的 也可以通过mysql驱动程序来实现 如com mysql jdbc ReplicationDriver 官网网址 多主机连接配置 1 主备配置 2 负载连接配置 3 主从复
  • arcgis根据矢量范围统计栅格数据众数、最大值、均值、中位数、最小值、少数等

    arcgis根据矢量范围统计栅格数据 数据 表格显示分区统计 分区统计 前面介绍过如何根据面状的矢量数据对 栅格数据进行统计 其主要是统计 每个面内像元值的数量为多少 参考 arcgis统计矢量面内栅格数据像元值个数 注 那么如果我需要统计
  • 惠普笔记本电脑驱动BIOS下载中心,战66驱动下载

    最近发现我战66 g3 2020 fn f3 f4屏幕亮度无法调节 已确定不是键盘的问题 搜索发现可能是驱动问题 惠普产品 https support hp com cn zh drivers laptops 战66驱动程序下载 https
  • Docker 之管理应用数据—数据卷 (二)

    卷是存储Docker容器生成和使用的数据的首选机制 绑定挂载依赖于主机的目录结构 而卷则完全由Docker管理 卷比绑定装载有几个优势 卷比绑定挂载更容易备份或迁移 您可以使用Docker CLI命令或Docker API来管理卷 卷可以在
  • 问题解决:jxls多sheet导出,多余一个空白sheet页

    一 项目需求 1 需求 用户勾选多个业务单 导出Excel 一个业务单占据一个sheet页 2 预期效果 3 实际效果 采用 jxls 2 3 0 jar的导出方法 JxlsHelper getInstance processTemplat
  • Linux设备文件(Device file)

    Linux设备文件 Device file 设备文件概述 在类Unix操作系统中 设备文件或特殊文件是设备驱动程序的接口 出现在文件系统中就好像它是普通文件一样 在MS DOS OS 2和Microsoft Windows中也有特殊文件 这
  • Spark-SQL之DataFrame操作大全

    Spark SQL中的DataFrame类似于一张关系型数据表 在关系型数据库中对单表或进行的查询操作 在DataFrame中都可以通过调用其API接口来实现 可以参考 Scala提供的DataFrame API 本文中的代码基于Spark
  • 使用docker将深度学习模型容器化

    一 使用Docker制作深度学习模型镜像 了解 注 首先 一开始shell中命令行所在位置在root文件下 即root 4210node 其次 整个文件夹目录如下 root model result 存放推理后的图片 val 存在数据集 d
  • 拼音汉字对照表

    啊 a 阿 a e 埃 ai 挨 ai 哎 ai 唉 ai 哀 ai 皑 ai 癌 ai 蔼 ai 矮 ai 艾 ai yi 碍 ai 爱 ai 隘 ai 鞍 an 氨 an 安 an 俺 an 按 an 暗 an 岸 an 胺 an 案
  • ubuntu显示git分支名

    https copyfuture com blogs details 202112180730365938
  • 手机没有root如何抓包,VMOS Pro+小黄鸟HttpCanary(附工具软件)

    2022年7月30日已更新最新版抓包教程 修复了评论中提到的若干问题 请戳下方蓝色链接阅读 2022年8月更新 手机没有root如何抓包 VMOS Pro 小黄鸟HttpCanary 附工具软件 以快手极速版抓包为例 现在手机root越来越
  • 面试复习题--正浩

    1 文件去除重复行 1 大文件分解 每行 2 为什么子线程不能更新UI 3 怎么改造使得子线程可以更新UI 4 子线程的handler 5 Wifi p2p开发 6 蓝牙 7 View post 和handler post区别 在主线程中使
  • CSS3 box-sizing 属性

    CSS3 box sizing 属性 常规盒模型 内容区 padding border margin 如果在页面中设置100100的div 那么padding会撑大div 并且border也是在100100的基础上面进行增加像素的 box
  • 无法找到服务器配置文件,在Linux中PostgreSQL“无法访问服务器配置文件(…)没有这样的文件或目录”干净安装后...

    我刚刚根据官方 documentation安装了postgresql 但由于某种原因 它不起作用 它确实安装使用sudo apt get postgres 等 但服务器的启动似乎不起作用 我尝试按照他们的documentation启动服务器
  • Merkle Patricia Tree (MPT) 树详解

    转载自 http www cnblogs com fengzhiwu p 5584809 html 1 介绍 Merkle Patricia Tree 简称MPT树 实际上是一种trie前缀树 是以太坊中的一种加密认证的数据结构 可以用来存
  • 毕业设计-基于MATLAB的医学影像数据迁移学习的实现

    目录 前言 课题背景和意义 实现技术思路 一 资料与方法 二 结果 三 讨论 部分源代码 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个
  • AES的256位密钥加解密报 java.security.InvalidKeyException: Illegal key size or default parameters 异常的处理及处理工具

    在做第三方对接进行AES加密 256位 的时候遇到的错误 这哥们写的非常详细 转载地址 https blog csdn net dafeige8 article details 76019911 一 出现的现象 为了数据代码在传输过程中的安