在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字符,
在编码之后和解码之前记录/显示编码字符串。确保它完全相同。