0

我必须从给定的数据创建一个签名,但问题是数据的长度是密钥长度。JAVA 中 RSA 签名者的所有实现都允许放置最大的数据。密钥长度减去一长度。如何为长度为密钥长度的数据创建签名?算法是基本的 RSA,没有填充和摘要。

4

2 回答 2

0

首先,请不要在没有填充的情况下使用 RSA - 这是一个糟糕的主意,会降低系统的安全性

如果您需要对大小等于密钥长度(或更大)的数据进行签名,恐怕您需要使用摘要。这里真的没有选择。我不确定你为什么不想使用摘要。

于 2013-03-11T14:38:53.857 回答
0

RSA 只能将数据加密到最大密钥大小(2048 位 = 256 字节)减去填充/标头数据(PKCS#1 v1.5 填充为 11 字节)。

因此,通常无法直接使用 RSA 加密文件。RSA 也不适用于此目的。如果你想加密更多的数据,你可以使用类似的东西:

Generate a 256-bit random keystring K
Encrypt your data with AES-CBC with K
Encrypt K with RSA
Send both to the other side
于 2019-10-22T05:24:01.990 回答