有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java RSA具有特定填充的最大消息长度

我试图在我的Java应用程序中实现一些加密。 加密的工作原理如下:

  1. 生成随机n位AES密钥
  2. 使用RSA公钥加密AES密钥
  3. 将加密的AES密钥发送到服务器
  4. 使用AES密钥加密数据并发送到服务器

我很难决定使用什么填充算法。我读到OAEPWithSHA-1AndMGF1Padding是一个不错的选择,但是我可以用它加密的最大消息长度是多少

我需要知道我的AES密钥可以用RSA加密的最大字节数

RSA密钥的长度也会有所不同。我可能会选择2048位

TL;DR:使用带有OAEPWithSHA-1AndMGF1Padding的2048位RSA密钥可以加密多少字节


共 (1) 个答案

  1. # 1 楼答案

    你所描述的被称为Hybrid Encryption,这是一种获得对称密钥加密系统速度的常用方法,结合了RSA两个密钥的优点

    至于细节:

    2048位RSA密钥允许使用256个字节,其中OAEP填充占用42个字节,剩下约214个字节用于加密数据。AES-256密钥的长度为256位(32字节),因此有足够的空间