当前位置: 首页 > 面试题库 >

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

孔才
2023-03-14
问题内容

我有一个包含在byte []中的消息,该消息已用“ RSA / ECB / PKCS1Padding”加密。为了解密它,我创建了一个Cipher c并用

c = Cipher.getInstance("RSA/ECB/PKCS1Padding");

直到现在,我只使用 doFinal() 方法解密了小消息,并返回一个包含已解密字节的byte []。

c.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptetBytes = c.doFinal(encryptedBytes);

但是在这种情况下,数据会更大(大约500字节),并且 doFinal()
方法会引发异常(javax.crypto.IllegalBlockSizeException:数据长度不能超过128个字节)。我想我需要使用
update() -方法,但是我不知道如何使它正常工作。怎么做?


问题答案:

我认为将RSA加密用于除密钥传输以外的任何事情都是滥用。

为对称密码生成一个新密钥,并使用该密钥对您的批量数据进行加密。然后使用RSA加密密钥。将对称加密的密文以及不对称加密的内容加密密钥发送给收件人。



 类似资料:
  • 问题内容: 我有一个大的字节数组和rsa密钥对,由值1024初始化。强烈要求使用rsa加密和指定的密钥大小,因此无法更改它。因此,我不能将对称加密与不对称加密对称密钥一起使用。我不能使用其他任何键。我有一个字节数组,需要返回加密的字节数组。我想知道是否有现成的工具可以解决这个问题? 很抱歉出现这样的业余问题,但我确实需要帮助。 问题答案: 如前所述,您的问题只有一个答案,那就是“否”。RSA加密是

  • 我正在做一个简单的程序来加密/解密使用RSA算法在Java。我创建一个密码对象如下: 我通过调用加密函数进行加密: 解密过程如下: 但是,当我将创建密码对象的代码编辑为://Create a Cipher object Cipher rsapier=Cipher时。getInstance(“RSA”); 问题出在哪里。在第一种情况下(当空格出现时),我指定了NoPadd?为什么空格出现在解密的消息

  • 问题内容: 我正在尝试使用RSA算法在.NET中加密字符串,并在Java中解密结果。目前,我已经可以做相反的事情(用Java加密,用.NET解密)。这里有我的代码可以实际工作(JAVA加密): 和(.NET解密) 现在我想做相反的事情……但是我遇到了一些错误,例如(密钥的大小应该是128个字节……等等)我应该怎么做? 在这里,我添加当前的 无效 代码: 。净 爪哇 问题答案: Java解密代码的最

  • 问题内容: 我正在使用RSA在JAVA上进行加密,并尝试使用.NET进行解密。我包括我的JAVA代码和.NET代码,希望有人对此有所了解。 JAVA代码: 从此JAVA代码中,我得到了加密字符串的结果,该结果恰好是: FOP4 AAIH6hcabXnrvNG5YUk + / + nBv9n9HU0CAgZjkIWQIDjbOpSwoPVBFERrZ6641x2QaoJw5yv18XAay 0WrC

  • 我使用的是Web加密,更具体地说,这些示例是:https://github.com/diafygi/webcrypto-examples/#rsa-oaep 更新

  • 问题内容: 我需要用openssl生成的和密钥替换从Unix到Java代码的加密和解密步骤 我生成密钥 我在Unix中使用键(我需要在Java中执行) 这是我的尝试 但它不起作用,PKCS8EncodedKeySpec / X509EncodedKeySpec不正确…但是我不知道该放什么 问题答案: 我认为您在读取PEM文件时遇到问题。JPA不直接支持PEM格式。您有两种选择,要么将它们转换为DE