我正在尝试使用base64对字符串进行加密和解密,但是当我尝试解密字符串时,我正在接收。
我收到的错误是:
{System.FormatException:Base-64字符数组或字符串的长度无效 在下面的解密函数中的这一行:
new KeyValuePair<K, V>(k, v)
Encrpyt / Decrypt函数:
MemoryStream ms = new MemoryStream(Convert.FromBase64String(inString));
}
答案 0 :(得分:1)
使用以下链接中的简单解决方案解决 How do I encode and decode a base64 string?
还在编码函数中添加了一些代码,以确保将纯文本字符串转换为有效长度的base64字符串。
<强>代码:强>
public static string Base64Encode(string plainText)
{
//check plain text string and pad if needed
int mod4 = plainText.Length % 4;
if (mod4 > 0)
{
plainText += new string('=', 4 - mod4);
}
//convert to base64 and return
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}
public static string Base64Decode(string base64EncodedData)
{
//decode base64 and return as string
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}