Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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# 解密AES/OFB/NOP_C#_Asp.net Core_Encryption_Aes_Bouncycastle - Fatal编程技术网

C# 解密AES/OFB/NOP

C# 解密AES/OFB/NOP,c#,asp.net-core,encryption,aes,bouncycastle,C#,Asp.net Core,Encryption,Aes,Bouncycastle,我需要解密使用C#中的AES/OFB/NoPadding组合编码的内容。这似乎在本机上不受支持:下面的代码不支持这样做 var aes = new AesManaged { Padding = PaddingMode.None, Mode = CipherMode.OFB, KeySize = 128, BlockSize = 128 }; 产生: 系统.安全.加密.加密异常: 指定的密码模式对此算法无效 我在这里能找到的最接近SO的问题是,它用于进行加密: Publi

我需要解密使用C#中的
AES/OFB/NoPadding
组合编码的内容。这似乎在本机上不受支持:下面的代码不支持这样做

var aes = new AesManaged
{
   Padding = PaddingMode.None,
   Mode = CipherMode.OFB,
   KeySize = 128,
   BlockSize = 128
};
产生:

系统.安全.加密.加密异常:
指定的密码模式对此算法无效

我在这里能找到的最接近SO的问题是,它用于进行加密:

Public Function DoEncryption(ByVal KeyArray() As Byte, ByVal IVArray() As Byte, ByVal Buffer     As Byte()) As Byte()

    Dim ae As New CipherKeyGenerator()
    ae.Init(New KeyGenerationParameters(New SecureRandom(), 256))
    Dim aesKeyParam As KeyParameter = ParameterUtilities.CreateKeyParameter("AES",     KeyArray)
    Dim aesIVKeyParam As ParametersWithIV = New ParametersWithIV(aesKeyParam, IVArray)
    Dim cipher As IBufferedCipher = CipherUtilities.GetCipher("AES/OFB/NoPadding")
    cipher.Init(True, aesIVKeyParam)
    Dim encrypted() As Byte = cipher.DoFinal(Buffer)
    Return encrypted

End Function

其他问题(如)包含更多信息,但也包含大量自定义代码——我宁愿使用BouncyCastle。有谁能帮我解密,或者给我指一些有用的文档吗?

从实际问题中的代码来看,触发解密而不是加密所需的唯一步骤是更改
cipher.Init
调用中的布尔参数:

cipher.Init(False, aesIVKeyParam) // False == decryption, True == encryption
C#中的最后一个片段是


根据实际问题中的代码,触发解密而不是加密所需的唯一步骤是更改
cipher.Init
调用中的布尔参数:

cipher.Init(False, aesIVKeyParam) // False == decryption, True == encryption
C#中的最后一个片段是


“BouncyCastle C#API”,没有C#API和VB.NET API,这不是.NET的工作方式。如果您询问如何将VB.NET代码转换为C#代码,甚至可以在几秒钟内在线完成转换。感谢指向在线转换@CamiloTerevinto的指针。我也更新了我的问题,以反映更多我需要的,并消除您指出的错误的二分法。您添加的代码与VB.NET版本有何相似之处?你的更新反映出你不理解我的评论谢谢你的附加评论@CamiloTerevinto:)我添加代码是为了展示我自己试图实现的目标-它不是为了与下面的VB代码相似,只是为了给我的问题提供更多的上下文。步骤1:转到。第二步:选择VB.NET>C#。步骤3:粘贴VB.NET代码。步骤4:将C代码复制到项目中。我不知道这里有什么困难“BouncyCastle C#API”,没有C#API和VB.NET API,这不是.NET的工作方式。如果您询问如何将VB.NET代码转换为C#代码,甚至可以在几秒钟内在线完成转换。感谢指向在线转换@CamiloTerevinto的指针。我也更新了我的问题,以反映更多我需要的,并消除您指出的错误的二分法。您添加的代码与VB.NET版本有何相似之处?你的更新反映出你不理解我的评论谢谢你的附加评论@CamiloTerevinto:)我添加代码是为了展示我自己试图实现的目标-它不是为了与下面的VB代码相似,只是为了给我的问题提供更多的上下文。步骤1:转到。第二步:选择VB.NET>C#。步骤3:粘贴VB.NET代码。步骤4:将C代码复制到项目中。我不知道这里有什么困难