我收到“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/