由java:local_policy.jar和US_export_policy.jar引发的“血案”

2023-11-14

起因:今天项目上线,上线后监测日志,发现由异常,开始查找问题 ,进而引发了“血案”

线上日志报错如下:Illegal key size
在这里插入图片描述
画外音:看到线上项目出现问题心里慌的一批
赶紧扒拉出代码,一行一行对着报错日志查看,最后定位到

AES aes = new AES(appSecret.getBytes());

AES解密时报错,一开始想着解密的密钥错误,去运维那边查找密钥发现正常无误。

AES解密方法用的是同事封装的jar包,想着是不是同事jar里面有问题。
我说: 帮忙看下这个错误吧
同事说: 密钥错误吧
我说: 密钥正确
同事说:应该是jdk有问题,线上服务器替换jar包了吗?
我:(懵逼状)jar包?
同事说:都知道,全部人都发过,需要替换jre里面的local_policy.jar和US_export_policy.jar两个jar包,jar包也都发过
我:没给我发过,也没通知过我
同事1: 不可能,都发过,jar包带说明
我说:真没有。(并在本地磁盘与钉钉聊天中搜索,无结果)
我说:先去运维那把服务器上的替换了,先把线上问题解决吧(咚咚咚~~跑到运维那)
同事2: 你竟然不知道,不可能,我印象中还给你看过呢
我:真的没有,你们四五个人都私下里说了,也私下发包了,但是就没给我说啊(此时已经哭晕在厕所,就瞒着我一人)

同事2:就给你说过
我:啊啊,太气了,真的没有,发誓没有
同事2:算了,算了,也不重要
我:重要。(太想揍人了,好生气好生气!)

咋能不重要,都说我知道,给我说过,结果我真不知道,主要是,大家咬定给我说过,jar也给我发过,没发过本地肯定运行不了 。可我真没有收到啊啊啊啊~ 本地也真的能够运行啊

就我这暴脾气,忍不了啊。。。我到底要看看local_policy.jar和US_export_policy.jar这两个是个啥玩意。

查找到原因:
这是因为某些国家的进口管制限制,JDK默认的加解密有一定的限制。
比如默认不允许 256 位密钥的 AES 加解密,解决方法就下载官方JCE无限制强度加密策略文件,覆盖即可。

但是发现我用的1.8.0_171 版本的 $JAVA_HOME/jre/lib/security/ 目录下面多了一个 policy 文件夹,里面还有两个文件夹

├── limited
│ ├── local_policy.jar
│ └── US_export_policy.jar
└── unlimited
├── local_policy.jar
└── US_export_policy.jar

于是搜了一下,发现

从Java 1.8.0_151和1.8.0_152开始,为JVM启用 无限制强度管辖策略 有了一种新的更简单的方法。如果不启用此功能,则不能使用AES-256。

请在 jre/lib/security 文件夹中查找文件 java.security。
例如,对于Java 1.8.0_152,文件结构如下所示:

/jdk1.8.0_152
|- /jre
|- /lib
|- /security
|- java.security
现在用文本编辑器打开java.security,并找到定义java安全性属性crypto.policy的行,它可以有两个值limited或unlimited - 默认值是limited。

默认情况下,应该能找到一条注释掉的行:

#crypto.policy=unlimited
可以取消注释该行来启用无限制,删除
#:crypto.policy=unlimited

我的老天,人家版本默认支持,你们就是没给姐姐说,还诬赖我,让我哭会儿吧

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

由java:local_policy.jar和US_export_policy.jar引发的“血案” 的相关文章

  • 多态性 - C++中实现运行时多态的方式

    一 概述 C 中的多态性是指同一个函数可以有多种不同的实现方式 并且在运行时根据实际情况进行选择执行 在C 中实现多态有两种方式 静态多态和动态多态 静态多态是指在编译时确定函数的实现 包括函数重载和模板函数 动态多态是指在运行时根据对象的

随机推荐

  • 针对无人机航拍视频中动态背景下的目标检测

    目录 目录 传统目标检测技术 传统目标检测技术 1 帧间差分 通过连续两帧相同位置像素点间的灰度差来确定目标移动 但只适用于静态背景和目标单一条件的目标检测 仅适用于无人机悬停状态下的目标检测 2 背景差分法 通过预先设置背景 然后通过对检
  • “体育游戏第一股”投资未来,望尘科技走向价值兑现周期

    2022年的游戏市场 遗憾以疲弱之势落下帷幕 游戏市场规模与用户数量 均出现了小幅下降 显示出存量市场的典型特征 但与此同时 更多垂直领域的拳头产品 响应市场需求的精品游戏 却屡屡掀起热潮 去年随世界杯而来的 最佳球会 就是一例 最佳球会
  • C# 基础知识 (四).C#简介及托管代码

    暑假转瞬即逝 从10天的支教生活到1周的江浙沪旅游 在这个漫长的暑假中我经历了很多东西 也学到了很多东西 也认识到了很多不足之处 闲暇之余我准备重新进一步巩固C 相关知识 包括C 入门知识 C 并行开发 ASP网站等 这篇文章我介绍的是书籍
  • JS 地址截取 省市区 (含自治区,直辖市,县,自治县)

    方法一 通过js处理 var str 湖北省武汉市江夏区文化大道110号 var str 内蒙古自治区乌兰浩特市二区 var str 重庆市渝中区中兴路 var str 湖北省黄石市阳新县 var str 湖北省宜昌市长阳土家族自治县 va
  • 同步与异步的区别

    同步与异步的区别 最近在学习ajax 而ajax Asynchronous JavaScript and XML 是一种异步的JavaScript和XML技术 鉴于此 就先来了解下同步与异步的思想和区别 一 同步与异步 同步 同步是指一个进
  • LIBSVM入门

    一 引言 LIBSVM提供了多语言 java python和matlab 的SVM实现 可以便捷地处理分类或回归问题 本文记录基于matlab的LIBSVM学习笔记 二 环境搭建 LIBSVM下载链接 https github com cj
  • Vue3 + Element Plus 按需引入 - 自动导入

    文章目录 1 前言 1 1 目的 1 2 最终效果 2 准备工作 3 按需引入 3 1 安装插件 3 2 修改 vite config ts 文件 4 其他 4 1 ElMessageBox 使用时报错 4 1 1 Eslint 报错 El
  • B/S架构和C/S架构的定义和区别(不同点)

    一 B S架构和C S架构的定义 1 B S Browser Server 浏览器和服务器架构 比如百度 微博 淘宝等网站 包含寄户端浏览器 web应用服务器 数据库服务器的软件系统 用户只需要一个浏览器就可以访问服务 系统更新时候 只需要
  • 【操作系统】操作系统知识点总结(秋招篇)

    文章目录 前言 操作系统主要做了哪些工作 进程 线程 协程之间的区别 进程的组成部分 介绍一下进程的PCB 讲一下进程的五态 以及它们的状态转移 用户态和内核态是什么 进程在用户态和内核态之间是如何切换的 讲一下进程之间的通信方式 讲一下进
  • [Unity2D]Tilemap Collider2D只给部分地图瓦片加上Collider的方法

    Unity2D Tilemap Collider2D 给Tilemap中的瓦片网格加上碰撞器 绿色的边框就是碰撞器 需要注意的是 如果给Tilpmap加碰撞器 其整个Tilpmap上的瓦片都会加上碰撞器 在一个Tilpmap上 如果想让部分
  • mongodb监控工具mongostat

    mongostat是mongodb自带的状态检测工具 在命令行下使用 会间隔固定时间获取mongodb的当前运行状态 并输出 常用命令格式 mongostat host 192 168 1 100 27017 uroot p123456 a
  • CreateRemoteThread的使用(转载)

    先解释一下远程进程 其实就是要植入你的代码的进程 相对于你的工作进程 如果叫本地进程的话 它就叫远程进程 可理解为宿主 首先介绍一下我们的主要工具CreateRemoteThread 这里先将函数原型简单介绍以下 CreateRemoteT
  • Android 特许权限白名单

    1 前言 在项目开发中 需求 app中有恢复出厂设置的功能 分解这个需求的时候 第一反应肯定不是第三方app 恢复出厂设置肯定需要有系统权限 属于系统级的app 然后在看手机系统中的功能 恢复出厂设置功能属于设置模块 找到源码阅读 当然是能
  • 2017-7-17 2-2 不使用&&和

    include
  • tomcat下载和配置(简单,详细)

    下载 官网 http tomcat apache org 找到需要的版本 点击download 在download页面 选择需要下载的 分为压缩版和安装版 我比较推荐压缩版 省事解压缩就好 配置 首先 tomcat7 0以上版本不需要配置环
  • 提高map[key]=value的效率

    当关乎效率时应该在map operator 和map insert之间仔细选择 我们知道 这个表达式 m k v 检查键k是否已经在map里 如果不 就添加上 以v作为它的对应值 如果k已经在map里 它的关联值被更新成v 举例一 考虑插入
  • 搭建第一个Dapp应用(4)——搭建SmartDev-Scaffold——2021.5.3

    搭建第一个Dapp应用 4 搭建SmartDev Scaffold 一丶环境配置 Java gt JDK 1 8 Solidity 0 4 25 Git 下载安装包需要使用Git Gradle 大于6 小于7 使用gradle7会报错 二丶
  • JavaEE规范与系统结构

    JavaEE规范 JavaEE规范是J2EE规范的新名称 早期被称为J2EE规范 其全称是Java 2 Platform Enterprise Edition 它是由SUN公司领导 各厂家共同制定并得到广泛认可的工业标准 JCP组织成员 之
  • Jenkins之定时构建

    1 操作环境 1 Jenkins Jenkins 2 75 2 定时构建 1 定时构建语法 第一个 表示分钟 取值0 59 第二个 表示小时 取值0 23 第三个 表示一个月的第几天 取值1 31 第四个 表示第几月 取值1 12 第五个
  • 由java:local_policy.jar和US_export_policy.jar引发的“血案”

    起因 今天项目上线 上线后监测日志 发现由异常 开始查找问题 进而引发了 血案 线上日志报错如下 Illegal key size 画外音 看到线上项目出现问题心里慌的一批 赶紧扒拉出代码 一行一行对着报错日志查看 最后定位到 AES ae