我收到“Base-64 char数组的长度无效”。 IF(){...}内部是我尝试使其工作的变体。它在第一行中失败,而没有调用crypto(...)证明不是功能问题。我在第一次解密(...)调用中遇到了相同的错误。最后一个使用encoding.ascii ...的代码将使我进入函数内部,但随后在函数内部失败。我正在从数据库中获取正确的加密信息到字符串SSnum。它的值是:4 + mFeTp3tPF

try
{
    string SSnum = dr.GetString(dr.GetOrdinal("Social Security"));
    if (isEncrypted)
    {
      byte[] temp = Convert.FromBase64String(SSnum);
      //SSnum = decrypt(Convert.FromBase64String(SSnum), Key, IV);
      //SSnum = decrypt(Encoding.ASCII.GetBytes(SSnum), Key, IV);
    }
    txt_Social_Security.Text = SSnum;
}
catch { txt_Social_Security.Text = ""; }

有人告诉我要使用Convert.FromBase64String()而不是ASCII方法...为什么失败了,我该如何解决?

最佳答案



您收到此错误是因为该值4+mFeTp3tPF实际上是而不是有效的Base64。

是否有可能像4+mFeTp3tPF=那样简单地缺少了所需的填充字符?

关于c# - Base-64 char数组的长度无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4867209/

10-12 20:36