c#base64加密。 decrpytion的长度错误无效

时间:2017-07-07 10:21:38

标签: c# encryption encoding character-encoding base64

我正在尝试使用base64对字符串进行加密和解密,但是当我尝试解密字符串时,我正在接收。

我收到的错误是:

  

{System.FormatException:Base-64字符数组或字符串的长度无效      在下面的解密函数中的这一行:
  new KeyValuePair<K, V>(k, v)

Encrpyt / Decrypt函数:

MemoryStream ms = new MemoryStream(Convert.FromBase64String(inString));

}

1 个答案:

答案 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);
        }