如何使RSACryptoServiceProvider无需填充(nopadding)?

我需要使C#应用程序与Java应用程序兼容。

Java应用程序使用Cipher.getInstance("RSA/ECB/nopadding"); 初始化程序,使密码ECB和无填充。

但是,在C#中,您有2个填充选项:OAEP填充或PKCS#1 v1.5填充。 我需要一个无填充版本,否则我肯定会陷入我的项目中。

我认为没有办法让C#.NET RSACryptoServiceProvider使用无填充方案。 但是,是否存在允许此精度的RSA自定义类或库?

PS:默认情况下是C#.NET的RSACryptoServiceProvider ECB吗? 我找不到关于此的文档。

使用OpenSSL.NET将使填充无法使用。 但是,我无法使它工作( 如果你想帮助我使它工作,请参阅这个问题 )

在没有填充的情况下执行RSA几乎肯定会让你遇到一个破碎的(不安全的)密码系统。 如果C#不允许你这样做,那么这就是C#的优势。 修复Java端。

嗯,事实是,如果你没有填充,你必须准确地满足块大小。 当然,通常准确地达到块大小是很奇怪的,因此你填充。

您可以随时自行填充,然后在另一侧删除一些字符。

究竟是什么原因,你需要这样做?