破解AES秘钥长度限制

2023-11-01

破解AES秘钥长度限制

高级加密标准

  • AES:在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES。

密码说明

  • 因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度均可以是128,192或256比特。加密过程中使用的密钥是由Rijndael密钥生成方案产生。

加密限制

  • 因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制。比如默认不允许256位密钥的AES加解密。

应对策略

//这里是通过反射移除了isRestricted 的变量修饰符:final
//然后将isRestricted 赋值为false即可
static {
        //break JCE crypto policy limit
        try {
            Class<?> clazz = Class.forName("javax.crypto.JceSecurity");
            Field nameField = clazz.getDeclaredField("isRestricted");

            Field modifiersField = Field.class.getDeclaredField("modifiers");
            modifiersField.setAccessible(true);
            modifiersField.setInt(nameField, nameField.getModifiers() & ~Modifier.FINAL);

            nameField.setAccessible(true);
            nameField.set(null, java.lang.Boolean.FALSE);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
  • 方法三:使用crypto.policy 解除受限加密

所需版本:Java 8 Update 151 (8u151)

在以前的发行版中,JCE 权限文件必须单独下载和安装,才能允许 JDK 使用不受限加密。现在,不再需要下载和安装步骤。要启用不受限加密,用户可以使用新的 crypto.policy 安全属性。

官方链接:—— [ Java 8 发行版要点说明 ]

文章摘录:

Java 8 Update 151 (8u151)
发行版要点说明

新增功能:用于控制加密策略的新安全属性
本发行版引入了一项新功能,使得可以通过新安全属性控制 JDK 使用的 JCE 权限策略文件。在以前的发行版中,JCE 权限文件必须单独下载和安装,才能允许 JDK 使用不受限加密。现在,不再需要下载和安装步骤。要启用不受限加密,用户可以使用新的 crypto.policy 安全属性。如果在 java.security 文件中设置了新安全属性 (crypto.policy),或者在初始化 JCE 框架之前已经使用 Security.setProperty() 调用来动态设置了该安全属性,则将遵循该设置。默认情况下,此属性未定义。如果此属性未定义,并且传统 lib/security 目录中不存在传统的 JCE 权限文件,则默认加密级别将保留为“受限”。要将 JDK 配置为使用不受限加密,请将 crypto.policy 设置为“无限制”值。有关详细信息,请参阅本发行版随附的 java.security 文件中的说明。
注:在 Solaris 上,建议删除旧 SVR4 包,然后再安装新的 JDK 更新。如果在早于 6u131、7u121、8u111 的 JDK 发行版上完成了基于 SVR4 的升级(不卸载旧包),则您应在 java.security 文件中设置新的 crypto.policy 安全属性。

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

破解AES秘钥长度限制 的相关文章

  • 按第一列排序二维数组,然后按第二列排序

    int arrs 1 100 11 22 1 11 2 12 Arrays sort arrs a b gt a 0 b 0 上面的数组已排序为 1 100 1 11 2 12 11 22 我希望它们按以下方式排序a 0 b 0 首先 如果
  • 使用 AES SecretKey 的 Java KeyStore setEntry()

    我目前正在 Java 中开发一个密钥处理类 特别是使用 KeyStore 我正在尝试使用 AES 实例生成 SecretKey 然后使用 setEntry 方法将其放入 KeyStore 中 我已经包含了代码的相关部分 The KS Obj
  • Hazelcast 分布式锁与 iMap

    我们目前使用 Hazelcast 3 1 5 我有一个简单的分布式锁定机制 应该可以跨多个 JVM 节点提供线程安全性 代码非常简单 private static HazelcastInstance hInst getHazelcastIn
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • Java 8 流 - 合并共享相同 ID 的对象集合

    我有一系列发票 class Invoice int month BigDecimal amount 我想合并这些发票 这样我每个月都会收到一张发票 金额是本月发票金额的总和 例如 invoice 1 month 1 amount 1000
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • react-native run-android 失败并出现错误:任务 ':app:dexDebug' 执行失败

    我使用的是 Windows 8 1 和react native cli 1 0 0 and react native 0 31 0 添加后react native maps对于该项目 我运行了命令react native upgrade并给
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • Java整数双除法混淆[重复]

    这个问题在这里已经有答案了 方案1 int sum 30 double avg sum 4 result is 7 0 not 7 5 VS 方案2 int sum 30 double avg sum 4 0 Prints lns 7 5
  • 欧洲中部时间 14 日 3 月 30 日星期五 00:00:00 至 日/月/年

    我尝试解析格式日期Fri Mar 30 00 00 00 CET 14至 日 月 年 这是我的代码 SimpleDateFormat formatter new SimpleDateFormat dd MM yyyy System out
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • 在没有默认 java.policy 文件的情况下运行 Java 安全管理器

    我不想修改 java 主目录中的任何内容 但是 我担心有时我的默认 java policy 文件可能过于宽松 当我使用以下命令运行 java 时 有没有办法使用指定的策略文件作为唯一的策略文件 Djava security manager
  • 用java实现我自己的远程桌面

    我正在尝试用java实现我自己的远程桌面解决方案 使用套接字和 TCP UDP 我知道我可以使用 VNC 或其他任何东西 但我想做的是学校的作业 因此 为了移动鼠标并单击 我可以使用 Robot 类 我对此有两个问题 发送视频怎么样 我知道

随机推荐

  • 雷军写的代码上热搜了

    雷军写的代码 一词突然上了微博热搜 一瞬间 我想起了这张图 到底发生了什么 好奇的我点进去一看 原来是因为雷军预告年度演讲的微博里配了一张海报 这张海报信息量非常大 一眼就能看到有很多代码元素 放大一点看看局部 这还是16位实模式下的汇编语
  • JSONObject重复引用导致结果中出现$ref的问题

    转自链接 https blog csdn net baceng article details 92836486 解决办法 先把JSONObject转换成String 然后再转换回JSONObject 例 bussinessData JSO
  • MAYA基础知识和技巧总结

    目录 自定义工具架 自定义热盒 打开Maya时隐藏Output Window 快捷键 小技巧 元素选择技巧 隐藏和显示元素的几种方法 多切割工具 加线 切割 补面的几种方法 复制的几种方法 加入参考图并锁定不动 曲线建模技巧 双轨成型工具
  • CUDA 编程入门

    CUDA 编程入门 更好的阅读体验 CUDA 概述 CUDA 是 NVIDIA 推出的用于其发布的 GPU 的并行计算架构 使用 CUDA 可以利用 GPU 的并行计算引擎更加高效的完成复杂的计算难题 在目前主流使用的冯 诺依曼体系结构的计
  • mongoDB使用总结

    windows安装 zip压缩包方式安装 下载 注意 因为现在最新版的mongodb不兼容win7 对windows系统的最低要求是win10 所以win7系统要安装mongodb数据库必须考虑使用旧版安装 Download MongoDB
  • 一个强大的漏洞公告网站

    http seclists org 通过一篇文章 MySQL 严重 Bug 用户登陆漏洞 得知的这个网站 强大
  • Python不是一门伟大的语言

    作为一门简洁易用 生态蓬勃且具有高泛用性的编程语言 Python一直以来都被不少人称作 编程语言中的瑞士军刀 尤其随着近来AI热潮席卷全球 Python在编程语言圈中的地位也随之水涨船高 甚至一度被视作AI专用语言或大数据专用语言 然而从语
  • 数据结构---归并排序

    归并排序 第一步 分组 第二步 归并 归并操作 第一步 第二步 第三步 JAVA实现 总结 第一步 分组 第1层分成2个大组 每组n 2个元素 第2层分成4个小组 每组n 4个元素 第3层分成8个更小的组 每组n 8个元素 一直到每组只有一
  • 各种经纬度坐标系转换-百度坐标系、火星坐标系、国际坐标系

    各种经纬度坐标系转换 百度坐标系 火星坐标系 国际坐标系 文章代码参考网上 测试没什么问题 汇总整理希望对大家有帮助 dou WGS84 国际坐标系 为一种大地坐标系 也是目前广泛使用的GPS全球卫星定位系统使用的坐标系 GCJ02 火星坐
  • UE4中使用数据表(Data Table)

    本文依据官方文档数据驱动游戏性元素整理而来 做过游戏的应该都清楚 如果游戏稍微有点规模 那么使用数据驱动来做游戏一般是必不可少的一步 一般也就是策划通过本表的方式来解决 下面我们来简单说一下UE4中如何使用DataTable来实现数据驱动开
  • MobileViG实战:使用MobileViG实现图像分类任务(一)

    文章目录 摘要 安装包 安装timm 安装 grad cam 数据增强Cutout和Mixup EMA 项目结构 计算mean和std 生成数据集 摘要 论文翻译 https blog csdn net m0 47867638 articl
  • 获取cookie的两种方式EL表达式中判断数据是否为空

    1 使用java代码获取cookie Cookie cs request getCookies 通过请求获取 for Cookie c cs if c getName equals loginAct String loginAct c ge
  • js总结(二)--彻底理解js中this的指向,不必硬背。

    首先必须要说的是 this的指向在函数定义的时候是确定不了的 只有函数执行的时候才能确定this到底指向谁 实际上this的最终指向的是那个调用它的对象 这句话有些问题 后面会解释为什么会有问题 虽然网上大部分的文章都是这样说的 虽然在很多
  • 解决 vscode 登录微软账户同步设置 出现“vscode.dev 关闭了连接“ 问题

    我的电脑最近重装了系统 之前的软件都删除了 在重新安装vscode之后想同步之前的设置 主题时出现了问题 我的解决方法是 在当前页面 输入 https vscode dev 看能不能打开 如果能打开 再次点击vscode登录账号同步设置 我
  • Pytorch与Onnx模型的保存、转换与操作

    Open Neural Network Exchange ONNX 开放神经网络交换 格式 是一个用于表示深度学习模型的标准 可使模型在不同框架之间进行转移 一 pytorch模型保存 加载 有两种方式可用于保存 加载pytorch模型 1
  • mysql查询表的所有内容

    show create table 表名
  • echarts设置x轴字体不同颜色

    业务需求 根据x轴是用户和有用户的文件夹来展示两种颜色 在获取数据的方法中 initData totalAnaysis then res gt let xData yData xFontcolor res data user forEach
  • 男人彻底懂得一个女人之后就不会爱她了吗?

    爱情教母张爱玲说过 男人彻底懂得一个女人之后 是不会爱她的 其实张爱玲的表达不确切 谁都不可能彻底懂得谁 自己都不可能彻底懂得自己 否则 张爱玲不会一遍一遍地写自己的童年 对其进行剖析 早年的有散文 私语 后来有英文的 雷峰塔 和中文的 小
  • java 提取文档注释 命令,java文档注释及javadoc命令

    注释的三种类型 1 单行注释 双斜线 2 多行注释 一次性将程序的多行注释掉 3 文档注释 如果编写Java源代码是添加了合适的文档注释 然年后通过JDK提供的Javadoc工具可以直接将源代码里面的文档注释提取成一份系统的API文档 文档
  • 破解AES秘钥长度限制

    破解AES秘钥长度限制 高级加密标准 AES 在密码学中又称Rijndael加密法 是美国联邦政府采用的一种区块加密标准 这个标准用来替代原先的DES 密码说明 因为Rijndael加密法可以支持更大范围的区块和密钥长度 AES的区块长度固