在c#asp.net中编码和解码?

在c#asp.net中编码和解码?,c#,asp.net,C#,Asp.net,我正在使用编码和解码: 对于编码: private string EncodeServerName(string ServerName) { byte[] NameEncodein = new byte[ServerName.Length]; NameEncodein = System.Text.Encoding.UTF8.GetBytes(ServerName); string EcodedName = Convert.ToBase64String(

我正在使用编码和解码:

对于编码:

private string EncodeServerName(string ServerName)
    {
      byte[] NameEncodein = new byte[ServerName.Length];
      NameEncodein = System.Text.Encoding.UTF8.GetBytes(ServerName);
      string EcodedName = Convert.ToBase64String(NameEncodein);
      return EcodedName;
    }
和解码:

     public string DecoAndGetServerName(string Servername)
     {
         System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
         System.Text.Decoder strDecoder = encoder.GetDecoder();
         byte[] to_DecodeByte = Convert.FromBase64String(Servername);
         int charCount = strDecoder.GetCharCount(to_DecodeByte, 0, to_DecodeByte.Length);
         char[] decoded_char = new char[charCount];
         strDecoder.GetChars(to_DecodeByte, 0, to_DecodeByte.Length, decoded_char,0);
         string Name = new string(decoded_char);

         return Name;
     }
我正在发送服务器名:
DEV-SQL1\SQL2008

它被编码为:
revwlvnrtdfcu1fmjawoa==

我想再次解码,但得到异常:行中:

byte[]to_DecodeByte=Convert.FromBase64String(服务器名)

例外情况是:

`输入不是有效的Base-64字符串,因为它包含非Base 64字符

两个以上的填充字符,或填充字符中的一个非空白字符`

如何解决这个问题


请帮助我

您的代码似乎太复杂了:-),下面是一个有效的方法:

public static string EncodeServerName(string serverName)
{
    return Convert.ToBase64String(Encoding.UTF8.GetBytes(serverName));
}

public static string DecodeServerName(string encodedServername)
{
    return Encoding.UTF8.GetString(Convert.FromBase64String(encodedServername));
}

您在
DecoAndGetServerName()
中编写的代码同样适用于我

问题是,您需要将
编码字符串
传递给
DecoAndGetServerName()
函数

其编码方式可能如下:

string Servername=Convert.ToBase64String(Encoding.UTF8.GetBytes("serverName"));

这就是为什么出现错误的原因。
输入不是有效的Base-64字符串,因为它包含一个非Base-64字符,

在编码之后和解码之前记录/显示编码字符串。确保它完全相同。