C# 实现 Base64 编码与解码
Base64 编码将二进制数据转换成 ASCII 字符。C# 中可以通过 System.Convert
类实现 Base64 编码和解码。
Base64 编码
byte[] inputArray = System.Text.Encoding.UTF8.GetBytes("Hello World!"); // 将需要编码的字符串转成 byte 数组
string base64Encoded = System.Convert.ToBase64String(inputArray); // Base64 编码
Console.WriteLine(base64Encoded); // 输出编码结果
上述代码中,首先将需要编码的字符串 Hello World!
转成 byte 数组,然后使用 System.Convert.ToBase64String
方法进行 Base64 编码,最后将编码结果输出。
运行上述代码后,输出结果为:SGVsbG8gV29ybGQh
。
Base64 解码
string base64Encoded = "SGVsbG8gV29ybGQh"; // 需要解码的 Base64 字符串
byte[] inputArray = System.Convert.FromBase64String(base64Encoded); // Base64 解码
string decodedString = System.Text.Encoding.UTF8.GetString(inputArray); // 解码后的字符串
Console.WriteLine(decodedString); // 输出解码结果
上述代码中,首先将需要解码的 Base64 字符串 SGVsbG8gV29ybGQh
转成 byte 数组,然后使用 System.Text.Encoding.UTF8.GetString
方法将其转换成字符串类型,最后将解码结果输出。
运行上述代码后,输出结果为:Hello World!
。
Base64 编码规则
Base64 编码规则如下:
- 每 3 个字节为一组,将其转换为 4 个字符,即 6 位二进制数转换为 4 个字符。
- 如果所有字节数不足 3 的倍数,则在末尾用零字节填充。
- Base64 字符表只包含大小写字母、数字以及两个特殊字符
+
和/
。
以字符串 "Man"
为例,其对应的 ASCII 码为 0x4D 0x61 0x6E
,对应的二进制为:
01001101 01100001 01101110
将上述二进制以每 6 位一组进行分组,分别为:
010011 010110 000101 101110
分别将上述每组 6 位二进制转换为对应的 Base64 字符,得到:
T W F u
因此字符串 "Man"
对应的 Base64 编码结果为 "TWFu"
。
示例 1:Base64 编码图片
byte[] imageArray = File.ReadAllBytes(@"C:/image.png"); // 读取图片字节数据
string base64Encoded = System.Convert.ToBase64String(imageArray); // 对图片进行 Base64 编码
Console.WriteLine(base64Encoded); // 输出编码结果
上述代码中,首先使用 File.ReadAllBytes
方法读取图片的字节数据,然后使用 System.Convert.ToBase64String
方法将其进行 Base64 编码,最后将编码结果输出。
示例 2:Base64 解码字符串
string base64Encoded = "SGVsbG8gV29ybGQh"; // 需要解码的 Base64 字符串
byte[] inputArray = System.Convert.FromBase64String(base64Encoded); // Base64 解码
string decodedString = System.Text.Encoding.UTF8.GetString(inputArray); // 解码后的字符串
Console.WriteLine(decodedString); // 输出解码结果
上述代码中,首先将需要解码的 Base64 字符串 SGVsbG8gV29ybGQh
转成 byte 数组,然后使用 System.Text.Encoding.UTF8.GetString
方法将其转换成字符串类型,最后将解码结果输出。
参考资料
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现Base64编码与解码及规则 - Python技术站