如何使 RSACryptoServiceProvider 在没有填充(nopadding)的情况下工作?

发布于 2024-08-04 12:57:19 字数 360 浏览 2 评论 0原文

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

I need to make a C# application compatible with a Java application.

The Java application uses a Cipher.getInstance("RSA/ECB/nopadding"); initializer to make the cipher ECB and no-padding.

However, in C#, you have 2 options for padding: OAEP padding or PKCS#1 v1.5 padding. I need a no-padding version, or else I'm definitely stuck in my project.

I don't think there is any way to make the C#.NET RSACryptoServiceProvider use a no-padding scheme. However, is there a RSA custom class or library that allows this precision?

P.S.: Is C#.NET's RSACryptoServiceProvider ECB by default? I can't find documentation on this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

舞袖。长 2024-08-11 12:57:20

使用 OpenSSL.NET 将使无填充变得可用。但是,我无法使其工作(如果您愿意,请参阅此问题帮助我让它发挥作用

Using OpenSSL.NET will make no-padding available. However, I can't make it work (See this question if you want to help me make it work)

赴月观长安 2024-08-11 12:57:20

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

Performing RSA without padding is almost certainly going to leave you with a broken (insecure) cryptosystem. If C# won't let you do it, then that's a point in C#'s favour. Get the Java side fixed.

谈场末日恋爱 2024-08-11 12:57:20

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

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

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

Well, the fact is that if you have no padding, you must meet the block size exactly. Of course it's quite odd to normally reach the block size exactly, hence you pad.

You can always pad it yourself, with some chars that you then remove on the other side.

What, exactly, is the reason you need to do this?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文