3

我需要使 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 是默认的吗?我找不到这方面的文档。

4

3 回答 3

3

使用 OpenSSL.NET 将使无填充可用。但是,我无法使其工作(如果您想帮助我使其工作,请参阅此问题

于 2009-09-08T22:10:31.113 回答
1

在没有填充的情况下执行 RSA 几乎肯定会给您留下一个损坏的(不安全的)密码系统。如果 C# 不允许你这样做,那么这对 C# 有利。修复 Java 端。

于 2009-09-08T02:31:11.673 回答
0

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

您始终可以自己填充它,然后在另一侧删除一些字符。

确切地说,您需要这样做的原因是什么?

于 2009-09-08T02:22:00.940 回答