栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

如前所述,您的问题只有一个答案,那就是“否”。RSA加密是一种对消息进行加密的算法,该消息最多可以加密给定大小,具体取决于密钥大小。带有1024位RSA密钥,并以RSA作为标准描述,最大大小为117字节,仅此而已。仅凭RSA无法加密更大的消息,这是确定的,数学上的确定性。

如果您确实需要处理更长的消息,则 必须 添加其他内容。在这种情况下,请,
,不要试图做你自己设计的任何幻想一些哦,所以,聪明的分割数据成小块等。那条路导致厄运。您可能会产生一些 看起来
可以编译和运行的东西,但是在某种程度上它总是弱小的,就像密码学上几乎所有其他自制的变体一样。这是因为无法测试安全性:这不是“有效”或“无效”的情况。

因此,非对称加密的通行之路是:

  1. 您选择一个适当长度的随机字节序列,例如128位(即16个字节)。让我们把它 ķ
  2. 您使用RSA公钥加密 K ;这会产生 ê
  3. 您可以使用对称加密算法()用 K 加密邮件
    "AES/CBC/PKCS5Padding"
    。由于这是单发键,因此可以使用全零IV。这就产生了一堆的字节,我们称之为 ˚F
  4. 然后,加密的消息是 EF 的串联。

解密以相反的顺序进行:使用RSA私钥从 E中 恢复 K ,然后使用 KF 解密为原始消息。密钥 K
永远不会存储在任何地方,并且每次都会生成一个 新的密钥K
(即使两次加密相同的消息也是如此)。这很重要,除非您了解自己在做什么(如果您已经在做,那么您已经知道了),请不要更改它。 __

给定您对问题的陈述,您除了“只是RSA”之外 必须做其他事情。我上面描述的过程是关于安全性可以想到的最佳“其他”信息。

将一些加密元素组合到这样的协议中是一个充满陷阱的过程,因此,使用已经定义的格式和支持库可能会更好。不对称加密的两种常见格式是CMS和OpenPGP。Bouncy
Castle是同时支持这两种方法并享有良好声誉的图书馆。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号