3

我在使用 OpenSSL 库的 .Net 包装器来计算一组字节的 RSA 私钥加密时遇到了一些问题。

目前,我读入了一个 .pem 文件,其中包含我想在 BIO 对象中使用的私钥。

public byte[] ComputeRSAEncryption(byte[] dataBlock, BIO privateKey)
{
   RSA rsa = RSA.FromPrivateKey(privateKey);
   return rsa.PrivateEncryption(dataBlock, RSA.Padding.None);
}

我正在使用大小为 64 字节的 RSA 密钥和大小为 64 字节的数据块。调用上述方法时,出现错误:

数据对于模数来说太大了

但是,如果我使用大小为 64 字节的数据块,其中所有字节都设置为 0x00,则该方法可以正常工作。

有什么我想念的吗?

谢谢。

4

1 回答 1

4

我终于解决了这个问题。对于其他感兴趣的人,数据块的最低有效字节的值必须为 0x00。通过强制执行此条件,RSA 加密和解密就像一个魅力。

于 2012-05-25T09:01:52.737 回答