解密使用 RSA java 加密的“长”消息

2023-11-23

您好,这是两年前问过的同一个问题:Java/JCE:解密使用 RSA 加密的“长”消息

我有一个大字节数组和 rsa 密钥对,由值 1024 启动。 使用 rsa 加密和指定密钥大小是强烈要求,我无法更改它。所以我不能使用对称加密和非对称加密对称密钥。我无法使用任何其他键。我有一个字节数组,需要返回加密的字节数组。我想知道是否有任何现成的工具可以解决这个问题?

很抱歉提出这样一个业余问题,但我真的需要帮助。


如前所述,您的问题只有一个答案,那就是“不”。 RSA 加密是一种将消息加密至给定大小的算法,该大小取决于密钥大小;使用 1024 位 RSA 密钥,并且 RSA 作为标准描述它,最大大小是117字节,没有更多。仅使用 RSA 无法加密更大的消息,这是明确的数学确定性。

如果您确实需要处理更长的消息,那么您一定必须添加其他东西。在这种情况下,请please,不要尝试做任何你自己设计的奇特的事情,比如将数据巧妙地分割成小块等。这条路通向厄运。你可能会生产出一些东西appears编译和运行,但在某种程度上总是很弱,就像几乎所有其他自制的密码学变体一样。这是因为安全性无法测试:它不是“有效”或“无效”的情况。

非对称加密的常用路径是这样的:

  1. 您选择适当长度的随机字节序列,例如128 位(即 16 个字节)。我们就这样称呼它吧K.
  2. 你加密K使用 RSA 公钥;这产生E.
  3. 您使用以下方式加密消息K使用对称加密算法("AES/CBC/PKCS5Padding")。由于这是一次性密钥,因此您可以使用全零 IV。这会产生一堆字节,我们称之为F.
  4. 加密消息是以下内容的串联E and F.

解密按相反顺序进行:使用 RSA 私钥进行恢复K from E, then K用于解密F到原始消息中。钥匙K永远不会存储在任何地方,并且新钥匙K每次都会生成(即使您对同一条消息加密两次)。这很重要,除非您了解自己在做什么(如果您了解,那么您已经知道了),否则不要更改它。

鉴于您对问题的陈述,您have做“只是 RSA”以外的事情。我上面描述的过程是关于安全方面您可以想出的最好的“其他东西”。

将一些加密元素组装到这样的协议中是一个充满陷阱的过程,因此使用已经定义的格式和支持库可能会运气更好。非对称加密的两种常见格式是CMS and OpenPGP。一个同时支持两者并具有良好声誉的图书馆是充气城堡.

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

解密使用 RSA java 加密的“长”消息 的相关文章

随机推荐

  • Python:在单词边界上分割unicode字符串

    我需要获取一个字符串 并将其缩短为 140 个字符 目前我正在做 if len tweet gt 140 tweet re sub r s tweet normalize space footer utils shorten urls po
  • MOVDQA 和 MOVNTDQA 以及 WB/WC 标记区域的 VMOVDQA 和 VMOVNTDQ 有什么区别?

    通过使用标记为 WB 回写 和 WC 写组合 的内存的指令之间的主要区别是什么 MOVDQA and MOVNTDQA 以及之间有什么不同VMOVDQA and VMOVNTDQ 是不是 内存已标记为 WC 指令 NT 与平常没有什么不同
  • 如何使用 git init 将本地 git hook 替换为更新版本?

    我和这位用户有完全相同的问题 git init 模板 替换修改后的钩子 我的全局 git hooks 中有一个新的模板文件 但是 原来的模板文件已经加载了 所以git init不会覆盖 我在这里读到了同样的内容 这似乎是正确的 git 行为
  • 使用moment.js,如何向用户显示当前的日期格式?

    给定一个文本字段 我想要一个合适的占位符 典型的占位符类似于 mm dd yyyy 但是 我想通过 moment js 使用区域设置感知日期 这意味着我将指定 l 作为 moment js 日期格式 如何确定在这种情况下 moment js
  • 如何使用 pandas 更改数据框中文本的字体大小

    我研究了 pandas 的样式文档 但无法准确地得到我的问题的特定和准确的答案 我正在使用数据帧读取 Excel 文件并在程序中处理该数据帧 最后 我使用 xlwings 库在另一个现有的 Excel 文件中写入处理后的数据帧 我在用 im
  • 如何使编辑器句柄可选择以显示属性检查器窗口

    这是来自的后续问题如何使贝塞尔曲线的各个锚点连续或不连续 请参阅它以获取已接受答案中的相关代码 请注意 我这样做是为了保持这个问题的简洁 因为相关代码相当冗长 我正在努力实现以下目标 使贝塞尔曲线手柄 控制点可选择 以便在选择时单个手柄的属
  • 根据谓词将列表拆分为列表列表

    我知道这个问题 但它与序列有关 这不是我的问题 给定此输入 例如 let testlist text1 text2 text3 text4 text5 text6 text7 let pred s string s StartsWith 我
  • 如何在 Swift 中将类分配给启动屏幕?

    我正在尝试更改从我的闪屏类调用 Web 服务的类 但它会触发错误消息 错误是 启动画面不允许自定义类 您的启动故事板在您的应用程序开始执行之前显示 因此 正如错误所示 它无法执行代码 您可以复制启动故事板中的场景作为主故事板的初始视图控制器
  • 在php中解析法国日期

    我有字符串 伦迪 2013 年 7 月 8 日 09 09 如何解析这个类型的字符串 I try date 08 Juillet 2013 09 09 date new DateTime date 但它抛出异常 The intl扩展可以用于
  • 您能否限制可以在 MATLAB GUI 编辑框中输入哪些字符?

    我想在 MATLAB GUI 中创建一个编辑框 仅允许在其中输入数字或字母 这可能吗 不存在这样的功能 至少没有记录在案 您可以分配一个回调来检查输入 但这将会发生after用户输入了非法字符 虽然我不知道具体该怎么做 但我猜你可以使用 J
  • ActionListener 如何工作?

    我知道如何使用动作侦听器并实现它们 但我想知道是否有人可以告诉我他们如何侦听事件 有某种轮询机制吗 操作侦听器使用以下方法注册事件观察者模式主事件循环会通知他们所注册的任何事件 所以不 这不是一个轮询 拉 机制 而是相反的 一个 推 回调
  • 拖动 WPF 用户控件

    我创建了一个可移动的UserControl
  • MySQL:在多列中查找相同的字符串

    我正在尝试制作一个类似搜索页面的功能 我想进行查询以在 ColumnA 和 ColumnB 以及 ColumnC 和 ColumnD 中查找 query 并选择在任何这些列中具有单词 短语 query 的行 这似乎有效 SELECT FRO
  • 从客户端的对象数组中获取最新日期的优雅方法是什么?

    我在项目中使用AngularJS 我从服务器获取对象数组 每个对象都包含几个属性 其中之一是日期属性 这是我从服务器获取的数组 json 格式 Address 25 AlertType 1 Area North MeasureDate 20
  • UIScrollView 按偏移量滚动

    我有这样的情况 适合所有屏幕的一个滚动视图 scrollView内部有N个 单元格 每个单元格包含一个标签 每个单元格的高度为 80px 固定绿色遮罩 UIView 我以编程方式创建带有标签的单元格 UIView 并正确设置scrollVi
  • MySQL命令解释忽略LIMIT?

    我使用MySQL服务器版本5 5 14 现在我正在尝试使用Explain命令进行这个简单的SQL查询 EXPLAIN SELECT id name thumb FROM twitter profiles LIMIT 10 它向我显示了这个结
  • Ninject.MVC3 Bootstrapper 的 Kernel 属性被标记为“已过时”。我怎样才能访问内核?

    我将 Ninject MVC3 包从 2 2 1 0 更新到 2 2 2 0 之前我可以通过 BootStrapper Kernel 属性访问 Kernel 对象 但在新版本中 Kernel 属性被标记为过时 我收到警告说 公共只读属性内核
  • 比较 pandas 列中的浮点数

    我有以下数据框 actual credit min required credit 0 0 3 0 4 1 0 5 0 2 2 0 4 0 4 3 0 2 0 3 我需要添加一列 指示actual credit gt min require
  • JavaScript 预加载是如何工作的?

    我不想知道预加载图像的方法 我在网上找到了很多 但我想知道它是如何工作的 javascript 如何预加载图像 我的意思是 我尝试了这里的一个片段 即使它有效 它似乎也没有预加载图像 当我检查 firebug 时 我可以看到图像加载了两次
  • 解密使用 RSA java 加密的“长”消息

    您好 这是两年前问过的同一个问题 Java JCE 解密使用 RSA 加密的 长 消息 我有一个大字节数组和 rsa 密钥对 由值 1024 启动 使用 rsa 加密和指定密钥大小是强烈要求 我无法更改它 所以我不能使用对称加密和非对称加密