我如何返回一个base64编码字符串给定的字符串? 我如何解码一个base64编码的字符串成字符串?


当前回答

一行代码:

注意:使用System和System。文本指示。

编码:

string encodedStr = Convert.ToBase64String(Encoding.UTF8.GetBytes("inputStr"));

解码:

string inputStr = Encoding.UTF8.GetString(Convert.FromBase64String(encodedStr));

其他回答

对于那些只想编码/解码单个base64数字的人:

public static int DecodeBase64Digit(char digit, string digit62 = "+-.~", string digit63 = "/_,")
{
    if (digit >= 'A' && digit <= 'Z') return digit - 'A';
    if (digit >= 'a' && digit <= 'z') return digit + (26 - 'a');
    if (digit >= '0' && digit <= '9') return digit + (52 - '0');
    if (digit62.IndexOf(digit) > -1)  return 62;
    if (digit63.IndexOf(digit) > -1)  return 63;
    return -1;
}

public static char EncodeBase64Digit(int digit, char digit62 = '+', char digit63 = '/')
{
    digit &= 63;
    if (digit < 52)
        return (char)(digit < 26 ? digit + 'A' : digit + ('a' - 26));
    else if (digit < 62)
        return (char)(digit + ('0' - 52));
    else
        return digit == 62 ? digit62 : digit63;
}

Base64的不同版本在数字62和63的使用上存在分歧,因此DecodeBase64Digit可以容忍其中的几个版本。

// Encoding
string passw = "tes123";
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(passw);
string pass = System.Convert.ToBase64String(plainTextBytes);

// Normal
var encodedTextBytes = Convert.FromBase64String(pass);
string plainText = Encoding.UTF8.GetString(encodedTextBytes);

要在c#中将一个字符串编码为base64字符串,可以使用Convert。ToBase64String方法:

string originalString = "Hello World";
string encodedString = Convert.ToBase64String(Encoding.UTF8.GetBytes(originalString));

要在c#中将base64编码的字符串解码为字符串,可以使用Convert。FromBase64String方法:

string encodedString = "SGVsbG8gV29ybGQ=";
string originalString = Encoding.UTF8.GetString(Convert.FromBase64String(encodedString));

你可以使用下面的例程将字符串转换为base64格式

public static string ToBase64(string s)
{
    byte[] buffer = System.Text.Encoding.Unicode.GetBytes(s);
    return System.Convert.ToBase64String(buffer);
}

你也可以使用在线工具OnlineUtility。以base64格式编码字符串

一行代码:

注意:使用System和System。文本指示。

编码:

string encodedStr = Convert.ToBase64String(Encoding.UTF8.GetBytes("inputStr"));

解码:

string inputStr = Encoding.UTF8.GetString(Convert.FromBase64String(encodedStr));