C# 如何解决Base-64字符数组的无效长度问题?

C# 如何解决Base-64字符数组的无效长度问题?,c#,java,C#,Java,我将像“1ijga8ZMQsjlN//74b+D9g==”这样的字符串传递给方法进行解密,但当我将该字符串存储到字符串变量中,然后将变量传递给方法时,会遇到以下错误: Base-64字符数组的长度无效 问题代码: String hdDec = Dispatch.call(c10, "Decrypt",hd, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize).toString(); 要解决

我将像
“1ijga8ZMQsjlN//74b+D9g==”
这样的字符串传递给方法进行解密,但当我将该字符串存储到字符串变量中,然后将变量传递给方法时,会遇到以下错误:

Base-64字符数组的长度无效

问题代码:

String hdDec = Dispatch.call(c10, "Decrypt",hd, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize).toString();

要解决您的问题,您需要先对all-ready Encode-base64字符串进行
编码
,然后对其进行
解码,具体取决于您使用它的位置


请查看以下内容

您共享的代码没有提供足够的信息来解决此问题,因为您只共享了调用完成所有工作的方法的代码。但是,由于错误消息是

Base-64字符数组的长度无效


问题可能是您发送了一个
字符串
,而该方法需要一个
char[]
,因此您可以尝试使用
“1ijga8ZMQsjlN//74b+D9g==”。tocharray()
。否则我们只能猜测。

请显示您的实际代码。字符串hdDec=Dispatch.call(c10,“Decrypt”,“1ijga8ZMQsjlN//74b+D9g==”,密码短语,saltValue,hashAlgorithm,passwordIterations,initVector,keySize)。toString();当我使用字符串hd=“1ijga8ZMQsjlN//74b+D9g==”这样的变量,然后将该字符串变量hd传递给方法String hdDec=Dispatch.call(c10,“Decrypt”、hd、passPhrase、saltValue、hashAlgorithm、passwordIterations、initVector、keySize);base64字符串本身是有效的。除了上面遇到的错误之外,我们不知道Dispatch.call是什么,也不知道无数参数的含义是什么,saltValue已初始化。因此,错误仅出现在字符串变量中。否。方法仅接受字符串,我也有相同的2个方法,但它们成功运行,只是该字符串有问题,我不知道为什么??事实上,我是从地址栏获取这些字符串并存储在字符串变量中,然后我将该字符串变量传递给webservice。而webservice调用上述代码。当webservice访问这些变量时,我想在方法中传递该变量,但出现上述错误。我们也不知道为什么,但是,由于该字符串是有效的base64字符串,因此问题要么是其他参数(密码短语、saltValue等)中的一个,要么是代码中的一个——您还没有提供这些参数(不要从实时网站复制/粘贴密码!)。我发现了一些东西。上面提到的字符串实际上是原始的,当我通过地址栏访问该字符串时,存储该字符串的变量丢失+登录,因此出现错误,因为丢失了1个字符+个字符。我在我的网站的地址栏中访问了该字符串,我正在实际工作。