RSA 加密 - 如何加密到小于密钥的大小

lir*_*n63 3 .net c# encryption cryptography rsa

我在我的项目中使用 RSA 加密,我需要将字节数组加密为加密字节数组,他的长度小于密钥长度(我使用 2048 位密钥)。当我在 c# 中使用 RSACryptoServiceProvider 类时,它总是将它加密为一个字节数组,他的长度是密钥长度(256 个字节)。我知道我不能将它加密成比密钥更长的大小,但是,我可以将它加密成更小的一个(原始未加密的字节长度数组)吗?

Jon*_*Jon 5

不可以。在加密之前将明文填充到密钥大小是防止某些类型的密码分析攻击所必需的,因此忽略它对于 RSA 实现(尤其是那些旨在用于一般用途的实现)没有意义的。