Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使RSACryptoServiceProvider在没有填充(nopadding)的情况下工作?_C#_Java_Encryption_Rsa - Fatal编程技术网

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

C# 如何使RSACryptoServiceProvider在没有填充(nopadding)的情况下工作?,c#,java,encryption,rsa,C#,Java,Encryption,Rsa,我需要使C#应用程序与Java应用程序兼容 Java应用程序使用一个Cipher.getInstance(“RSA/ECB/nopadding”)初始值设定项,使密码为ECB且无填充 但是,在C#中,有两种填充选项:OAEP填充或PKCS#1v1.5填充。我需要一个无填充版本,否则我肯定会被困在我的项目中 我认为没有任何方法可以让C#.NET RSACryptoServiceProvider使用无填充方案。但是,是否有允许此精度的RSA自定义类或库 注意:C#NET的RSACryptoServi

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

Java应用程序使用一个
Cipher.getInstance(“RSA/ECB/nopadding”)初始值设定项,使密码为ECB且无填充

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

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


注意:C#NET的RSACryptoServiceProvider默认为ECB吗?我找不到这方面的文档。

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

你总是可以自己垫上一些木炭,然后在另一边去掉


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

执行无填充的RSA几乎肯定会给您留下一个损坏(不安全)的密码系统。如果C#不让你这么做,那么这是C#有利的一点。修复Java端。

使用OpenSSL.NET将不提供任何填充。但是,我无法使它工作()

我不担心块大小。我用过它一次,我就知道它的大小了。这是一个128字节的数组。啊,我明白了。我不得不道歉。我猜,如果不需要填充,那么就不需要填充?不过这是一个猜测,我想,因为你在问,所以,对不起:)我可能已经找到了答案!使用OpenSsl.Net可能对我有用。我明天考试。:)是的,我只能同意这一点。如果没有适当的填充,就不要使用RSA。当RSA未被正确使用时,有太多已知的针对它的攻击。但是,如果我需要计算哈希并通过一些自定义算法添加填充,该怎么办?我是否也需要使用BigInteger来执行自定义RSA计算?如下所述: