我得到「Base-64字符數組的無效長度」。 IF(){...}內部是我試圖讓它工作的變體。它在沒有調用解密(...)的情況下在第一行失敗,證明這不是功能問題。我在第一次解密(...)調用時遇到同樣的錯誤。最後一個使用encoding.ascii ...會讓我進入函數,但是它在函數內部失敗。我正在從數據庫中獲取正確的加密信息來將字符串SSnum。它的值是:4 + mFeTp3tPFBase-64字符數組的長度無效
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方法......那麼,爲什麼失敗,我該怎麼解決?
請不要在標題中加入類似「c#」的內容。這就是標籤的用途。 – 2011-02-01 19:47:05
4 + mFeTp3tPF看起來不像一個有效的base64值。它包含11個字符,而base64值長度應該是4的倍數。使用填充,它應該看起來像4 + mFeTp3tPF =(其中=用於填充)。你應該檢查base64值是如何生成的。 – 2011-02-01 19:53:27